Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
Peguei este código do William Bruno e uso no meu sistema PHP perferitamente.
Porém surgiu um problema: Quando o campo é um TEXTAREA e o texto pula linhas/parágrafos ele trava e fica só 'Carregando...'. Alguém sabe o motivo? E como resolver?
>
Já tentou converter o código do "ENTER" para fazer o envio?
Como faz isso???
Já alterei o tipo do campo no MySQL para "longtext", mas não resolveu! Mesmo pq, o banco armazena o texto direitinho, pulando linhas e tal... o problema é no momento de 'resgatar' a informação.
Ajuda, por favor!!!!
Deve estar quebrando o jSON.
acesse o arquivo gerador do jSON diretamente, e analise a string retornada.
veja sobre a função json_encode();
>
Deve estar quebrando o jSON.
acesse o arquivo gerador do jSON diretamente, e analise a string retornada.
veja sobre a função json_encode();
Oi, William.
Li sobre a função, mas não sei como corrigir o problema.
Estes são meus arquivos:
campo que mostra a informação:
<tr align="center">
<td colspan="6"><textarea name="vistoria_acompanha" cols="110" rows="15" id="vistoria_acompanha"></textarea></td>
</tr>
script_alterando.php
$(document).ready(function(){
$("select[name='razao']").change(function(){
$("input[name='vistoria_id']").val('Carregando...');
$("input[name='vistoria_data']").val('Carregando...');
$("select[name='vistoria_vendedor']").val('Carregando...');
$("input[name='vistoria_cpfcnpj']").val('Carregando...');
$("input[name='vistoria_razao']").val('Carregando...');
$("select[name='vistoria_tipo']").val('Carregando...');
$("input[name='vistoria_fantasia']").val('Carregando...');
$("select[name='vistoria_tipo_edif']").val('Carregando...');
$("input[name='cep']").val('Carregando...');
$("input[name='rua']").val('Carregando...');
$("input[name='vistoria_end_num']").val('Carregando...');
$("input[name='bairro']").val('Carregando...');
$("input[name='cidade']").val('Carregando...');
$("input[name='uf']").val('Carregando...');
$("input[name='vistoria_pais']").val('Carregando...');
$("input[name='vistoria_contato1']").val('Carregando...');
$("input[name='vistoria_funcao1']").val('Carregando...');
$("input[name='vistoria_email1']").val('Carregando...');
$("input[name='vistoria_tel_res1']").val('Carregando...');
$("input[name='vistoria_tel_com1']").val('Carregando...');
$("input[name='vistoria_tel_cel1']").val('Carregando...');
$("textarea[name='vistoria_obs']").val('Carregando...');
$("textarea[name='vistoria_acompanha']").val('Carregando...'); //É ESTE CAMPO!!
$.getJSON(
'function_altera.php',
{vistoria_id: $(this).val()},
function(data){
$.each(data, function(i, obj){
$("input[name='vistoria_id']").val(obj.vistoria_id);
$("input[name='vistoria_data']").val(obj.vistoria_data);
$("select[name='vistoria_vendedor']").val(obj.vistoria_vendedor);
$("input[name='vistoria_cpfcnpj']").val(obj.vistoria_cpfcnpj);
$("input[name='vistoria_razao']").val(obj.vistoria_razao);
$("select[name='vistoria_tipo']").val(obj.vistoria_tipo);
$("input[name='vistoria_fantasia']").val(obj.vistoria_fantasia);
$("select[name='vistoria_tipo_edif']").val(obj.vistoria_tipo_edif);
$("input[name='cep']").val(obj.cep);
$("input[name='rua']").val(obj.rua);
$("input[name='vistoria_end_num']").val(obj.vistoria_end_num);
$("input[name='bairro']").val(obj.bairro);
$("input[name='cidade']").val(obj.cidade);
$("input[name='uf']").val(obj.uf);
$("input[name='vistoria_pais']").val(obj.vistoria_pais);
$("input[name='vistoria_contato1']").val(obj.vistoria_contato1);
$("input[name='vistoria_funcao1']").val(obj.vistoria_funcao1);
$("input[name='vistoria_email1']").val(obj.vistoria_email1);
$("input[name='vistoria_tel_res1']").val(obj.vistoria_tel_res1);
$("input[name='vistoria_tel_com1']").val(obj.vistoria_tel_com1);
$("input[name='vistoria_tel_cel1']").val(obj.vistoria_tel_cel1);
$("textarea[name='vistoria_obs']").val(obj.vistoria_obs);
$("textarea[name='vistoria_acompanha']").val(obj.vistoria_acompanha); //É ESTE CAMPO!!
})
});
});
});
function_altera.php
<?php
include "../../config.php"; //inclui o arquivo de conexão
/**
* função que retorna o select
*/
function montaSelect()
{
$sql = "SELECT * FROM siesa_vistoria ORDER BY vistoria_razao";
$query = mysql_query( $sql );
if( mysql_num_rows( $query ) > 0 )
{
while( $dados = mysql_fetch_assoc( $query ) )
{
$opt .= '<option value="'.$dados['vistoria_id'].'">'.$dados['vistoria_razao'].' - '.$dados['vistoria_end'].', '.$dados['vistoria_end_num'].'</option>';
}
}
else
$opt = '<option value="0">Nenhuma vistoria cadastrada</option>';
return $opt;
}
/**
* função que devolve em formato JSON os dados do vistoria
*/
function retorna( $id=null )
{
$id = (int)$id;
$sql = "SELECT *, date_format(vistoria_data, '%d/%m/%y') as 'vistoria_data' FROM siesa_vistoria ";
if( $id != null )
$sql .= "WHERE vistoria_id = {$id} ";
$query = mysql_query( $sql );
//$json = 'var dados = ';
$json .= ' [';
if( mysql_num_rows( $query ) > 0 )
{
while( $dados = mysql_fetch_assoc( $query ) )
{
$json .= "{
vistoria_id: '{$dados['vistoria_id']}',
vistoria_data: '{$dados['vistoria_data']}',
vistoria_vendedor: '{$dados['vistoria_vendedor']}',
vistoria_cpfcnpj: '{$dados['vistoria_cpfcnpj']}',
vistoria_razao: '{$dados['vistoria_razao']}',
vistoria_tipo: '{$dados['vistoria_tipo']}',
vistoria_fantasia: '{$dados['vistoria_fantasia']}',
vistoria_tipo_edif: '{$dados['vistoria_tipo_edif']}',
cep: '{$dados['vistoria_cep']}',
rua: '{$dados['vistoria_end']}',
vistoria_end_num: '{$dados['vistoria_end_num']}',
bairro: '{$dados['vistoria_bairro']}',
cidade: '{$dados['vistoria_cidade']}',
uf: '{$dados['vistoria_uf']}',
vistoria_pais: '{$dados['vistoria_pais']}',
vistoria_contato1: '{$dados['vistoria_contato1']}',
vistoria_funcao1: '{$dados['vistoria_funcao1']}',
vistoria_email1: '{$dados['vistoria_email1']}',
vistoria_tel_res1: '{$dados['vistoria_tel_res1']}',
vistoria_tel_com1: '{$dados['vistoria_tel_com1']}',
vistoria_tel_cel1: '{$dados['vistoria_tel_cel1']}',
vistoria_acompanha: '{$dados['vistoria_acompanha']}'
vistoria_obs: '{$dados['vistoria_obs']}'
}";;
}
}
else
$json = 'vistoria_id: não encontrado';
$json .= ']';
//$jston .= ';';
return $json;
}
/ só se for enviado o parâmetro, que devolve o combo /
if( isset($_GET['vistoria_id']) )
{
echo retorna( $_GET['vistoria_id'] );
}
?>
Está funcionando perfeitamente, exceto quando o texto do campo name="vistoria_acompanha" pula linha/parágrafo. Aí grava correto no banco, mas não retorna.
seguinte então, acessa diretamente:
localhost/function_altera.php?vistoria_id=2
ai vai aparecer o jSON na tela pra você. Veja se não tem nenhum erro de sintaxe.
Se você tiver dúvidas, poste aqui. Acredito que a função utf8_encode() deva resolver.
Porém, não deixe de postar o jSON aqui.
ps: corrija(faltou uma virgula):
vistoria_acompanha: '{$dados['vistoria_acompanha']}', //faltava essa virgula aqui
vistoria_obs: '{$dados['vistoria_obs']}'
Fiz o teste com 2 cadastros.
Esse é o primeiro: localhost/function_altera.php?vistoria_id=1
Aparece o resultado normal:
[{ vistoria_id: '1', vistoria_data: '00/00/00', vistoria_vendedor: 'RENATA GUILHERME RAMOS', vistoria_cpfcnpj: '176.629.428-64', vistoria_razao: 'RENATA GUILHERME RAMOS', vistoria_tipo: 'PRIVADO', vistoria_fantasia: 'RE', vistoria_tipo_edif: 'COMERCIAL', cep: '02565-040', rua: 'RUA ARISTIDES JOFRE', vistoria_end_num: '140', bairro: 'CASA VERDE ALTA', cidade: 'SÃO PAULO', uf: 'SP', vistoria_pais: 'BRASIL', vistoria_contato1: 'RENATA', vistoria_funcao1: 'ANALISTA', vistoria_email1: '', vistoria_tel_res1: '(11)3966-3666', vistoria_tel_com1: '', vistoria_tel_cel1: '', vistoria_acompanha: 'Digite aqui o histórico da negociação.', vistoria_obs: 'OBS' }]
Esse é o segundo teste simulando o erro: localhost/function_altera.php?vistoria_id=2
Também aparece o resultado normal:
[{ vistoria_id: '2', vistoria_data: '17/07/20', vistoria_vendedor: 'RENATA GUILHERME RAMOS', vistoria_cpfcnpj: '03.729.363/0001-50', vistoria_razao: 'RENATA GUILHERME RAMOS', vistoria_tipo: 'PRIVADO', vistoria_fantasia: 'RE', vistoria_tipo_edif: 'COMERCIAL', cep: '02190-070', rua: 'RUA PEDRO TAQUES PIRES', vistoria_end_num: '0618', bairro: 'PARQUE NOVO MUNDO', cidade: 'SÃO PAULO', uf: 'SP', vistoria_pais: 'USA', vistoria_contato1: 'RENATA', vistoria_funcao1: 'ANALISTA', vistoria_email1: '', vistoria_tel_res1: '(11)3966-3666', vistoria_tel_com1: '', vistoria_tel_cel1: '', vistoria_acompanha: 'DIGITE AQUI O HISTÓRICO DA NEGOCIAÇÃO. TESTE TESTANDO', vistoria_obs: 'OBSERVACAO' }]
O campo vistoria_acompanha: 'DIGITE AQUI O HISTÓRICO DA NEGOCIAÇÃO. TESTE TESTANDO', foi gravado assim no banco:
DIGITE AQUI O HISTÓRICO DA NEGOCIAÇÃO.
TESTE
TESTANDO
Então não está mostrando o erro com essa busca.... só acontece mesmo na hora de preencher o campo no formulário.
ta.. aparentemente está tudo certo com o jSON.
o caracter especial de quebra de linha, pode estar dando problema.
tenta assim:
return utf8_encode( $json );
e testa lá na busca.
vê se dá erro ou não (se preenche corretamente e tal)
Coloquei, mas continua com o mesmo problema (não preenche, fica só 'Carregando...') e os outros que estava corretos agora aparecem caracteres especiais ... "Digite aqui o histórico da negociação."
fiz um teste aqui com json_encode() e funcionou corretamente, veja ai:
$arr = Array();
if( mysql_num_rows( $query ) > 0 )
{
while( $dados = mysql_fetch_assoc( $query ) )
{
$arr['vistoria_id'] = $dados['vistoria_id']
$arr['vistoria_data'] = $dados['vistoria_data'];
$arr['vistoria_vendedor'] = $dados['vistoria_vendedor'];
$arr['vistoria_cpfcnpj'] = $dados['vistoria_cpfcnpj'];
$arr['vistoria_razao'] = $dados['vistoria_razao'];
$arr['vistoria_tipo'] = $dados['vistoria_tipo'];
$arr['vistoria_fantasia'] = $dados['vistoria_fantasia'];
$arr['vistoria_tipo_edif'] = $dados['vistoria_tipo_edif'];
$arr['cep'] = $dados['vistoria_cep'];
$arr['rua'] = $dados['vistoria_end'];
$arr['vistoria_end_num'] = $dados['vistoria_end_num'];
$arr['bairro'] = $dados['vistoria_bairro'];
$arr['cidade'] = $dados['vistoria_cidade'];
$arr['uf'] = $dados['vistoria_uf'];
$arr['vistoria_pais'] = $dados['vistoria_pais'];
$arr['vistoria_contato1'] = $dados['vistoria_contato1'];
$arr['vistoria_funcao1'] = $dados['vistoria_funcao1'];
$arr['vistoria_email1'] = $dados['vistoria_email1'];
$arr['vistoria_tel_res1'] = $dados['vistoria_tel_res1'];
$arr['vistoria_tel_com1'] = $dados['vistoria_tel_com1'];
$arr['vistoria_tel_cel1'] = $dados['vistoria_tel_cel1'];
$arr['vistoria_acompanha'] = $dados['vistoria_acompanha'];
$arr['vistoria_obs'] = $dados['vistoria_obs'];
}
}
else
$arr['vistoria_id'] = 'não encontrado';
return json_encode( $arr );Aqui não funcionou, mas nem o montaSelect está aparecendo.
Acho que precisa alterar alguma coisa na parte do montaSelect.
<?php
include "../../config.php"; //inclui o arquivo de conexão
/**
* função que retorna o select
*/
function montaSelect()
{
$sql = "SELECT * FROM siesa_vistoria ORDER BY vistoria_razao";
$query = mysql_query( $sql );
if( mysql_num_rows( $query ) > 0 )
{
while( $dados = mysql_fetch_assoc( $query ) )
{
$opt .= '<option value="'.$dados['vistoria_id'].'">'.$dados['vistoria_razao'].' - '.$dados['vistoria_end'].', '.$dados['vistoria_end_num'].'</option>';
}
}
else
$opt = '<option value="0">Nenhuma vistoria cadastrada</option>';
return $opt;
}
/**
* função que devolve em formato JSON os dados do vistoria
*/
function retorna( $id=null )
{
$id = (int)$id;
$sql = "SELECT *, date_format(vistoria_data, '%d/%m/%y') as 'vistoria_data' FROM siesa_vistoria ";
if( $id != null )
$sql .= "WHERE vistoria_id = {$id} ";
$query = mysql_query( $sql );
$arr = Array();
if( mysql_num_rows( $query ) > 0 )
{
while( $dados = mysql_fetch_assoc( $query ) )
{
$arr['vistoria_id'] = $dados['vistoria_id']
$arr['vistoria_data'] = $dados['vistoria_data'];
$arr['vistoria_vendedor'] = $dados['vistoria_vendedor'];
$arr['vistoria_cpfcnpj'] = $dados['vistoria_cpfcnpj'];
$arr['vistoria_razao'] = $dados['vistoria_razao'];
$arr['vistoria_tipo'] = $dados['vistoria_tipo'];
$arr['vistoria_fantasia'] = $dados['vistoria_fantasia'];
$arr['vistoria_tipo_edif'] = $dados['vistoria_tipo_edif'];
$arr['cep'] = $dados['vistoria_cep'];
$arr['rua'] = $dados['vistoria_end'];
$arr['vistoria_end_num'] = $dados['vistoria_end_num'];
$arr['bairro'] = $dados['vistoria_bairro'];
$arr['cidade'] = $dados['vistoria_cidade'];
$arr['uf'] = $dados['vistoria_uf'];
$arr['vistoria_pais'] = $dados['vistoria_pais'];
$arr['vistoria_contato1'] = $dados['vistoria_contato1'];
$arr['vistoria_funcao1'] = $dados['vistoria_funcao1'];
$arr['vistoria_email1'] = $dados['vistoria_email1'];
$arr['vistoria_tel_res1'] = $dados['vistoria_tel_res1'];
$arr['vistoria_tel_com1'] = $dados['vistoria_tel_com1'];
$arr['vistoria_tel_cel1'] = $dados['vistoria_tel_cel1'];
$arr['vistoria_acompanha'] = $dados['vistoria_acompanha'];
$arr['vistoria_obs'] = $dados['vistoria_obs'];
}
}
else
$arr['vistoria_id'] = 'não encontrado';
return json_encode( $arr );
}
/ só se for enviado o parâmetro, que devolve o combo /
if( isset($_GET['vistoria_id']) )
{
echo retorna( $_GET['vistoria_id'] );
}
?>[RESOLVIDO]
Até hoje não consegui resolver isso :(
Mas tentei da forma convencional, com consulta ao banco e preenchimento com variáveis e eu certo!
<?php
if($_GET['funcao'] == 'alterar'){
$coment_id = $_GET['coment_id'];
$comenta = mysql_query("SELECT * FROM comentarios WHERE coment_id = '$coment_id'");
while($linha = mysql_fetch_array($comenta)){
$coment_nome = $linha['coment_nome'];
$coment_mensagem = $linha['coment_mensagem'];
}
?>
<table align="left" border="0" cellpadding="5" cellspacing="5">
<tr>
<td>NOME</td>
<td><input bgcolor="#999999" type="text" name="coment_nome" id="coment_nome" value="<?php echo $coment_nome?>" size="40"></td>
</tr>
<tr>
<td>MENSAGEM</td>
<td><textarea bgcolor="#999999" name="coment_mensagem" id="coment_mensagem" cols="35" rows="5"><?php echo $coment_mensagem?></textarea></td>
</tr>
<tr>
<td colspan="2" align="center" border="0"><input bgcolor="#999999" type="submit" name="altera" id="altera" value="ALTERAR"></td>
</tr>
</table>
<?php
}
?>
Obrigada William e todos pela ajuda!
Já tentou converter o código do "ENTER" para fazer o envio?