Fiz as minhas alterações conforme necessário e ela funciona muito bem até certo ponto. Quando o registro (linha) no banco de dados contém algum campo com palavras acentuadas como "ã", "á", "é", é mostrado como caracteres "estranhos".
Como por exemplo, a palavra "São Paulo" é mostrada "S�Paulo".
O curioso é que quando uma palavra que contenha o "Ó" (ex. Freguesia do Ó) o script todo não funciona!!
Antes de postar o código vou deixar claro que todo o site utiliza o padrão de caracteres ISO-8859-1 (charset=iso-8859-1). As tabelas do banco de dados estão como "Latim1_general_ci" e todos os arquivos salvos em codificação ANSI.
Segue o código:
O Javascript no <HEAD>:
<script type="text/javascript" src="AJAX/ajax.js"></script>
<script type="text/javascript">
/************************************************************************************************************
Ajax client lookup
Copyright (C) 2006 DTHMLGoodies.com, Alf Magne Kalleland
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
written by Alf Magne Kalleland.
Alf Magne Kalleland, 2006
Owner of DHTMLgoodies.com
************************************************************************************************************/
var ajax = new sack();
var currentClientID=false;
function getClientData()
{
var clientId = document.getElementById('idsolicitante').value.replace(/[^0-9]/g,'');
if(clientId.length>0 && clientId!=currentClientID){
currentClientID = clientId
ajax.requestFile = 'getClient.php?getClientId='+clientId; // Specifying which file to get
ajax.onCompletion = showClientData; // Specify function that will be executed after file has been found
ajax.runAJAX(); // Execute AJAX function
}
}
function showClientData()
{
var formObj = document.forms['pedido'];
eval(ajax.response);
}
function initFormEvents()
{
document.getElementById('idsolicitante').onblur = getClientData;
document.getElementById('idsolicitante').focus();
}
window.onload = initFormEvents;
</script>
O arquivo PHP que roda a query no banco e retorna os valores:
<?php
/* Replace the data in these two lines with data for your db connection */
require "../../sistema/functions.php";
db_connect();
$res2 = mysql_query("SELECT * FROM tb_distri_ender WHERE id_distribuidor = ".$_GET['getClientId']) or die(mysql_error());
$inf2 = mysql_fetch_array($res2);
if(isset($_GET['getClientId'])){
$res = mysql_query("SELECT * FROM tb_distribuidor WHERE id_distribuidor = ".$_GET['getClientId']) or die(mysql_error());
if($inf = mysql_fetch_array($res)){
echo "formObj.nome.value = '".$inf["nm_nome"]."';\n";
echo "formObj.endereco.value = '".$inf2["nm_endereco"]."';\n";
echo "formObj.complemento.value = '".$inf2["nm_complemento"]."';\n";
echo "formObj.bairro.value = '".$inf2["nm_bairro"]."';\n";
echo "formObj.cidade.value = '".$inf2["nm_cidade"]."';\n";
echo "formObj.estado.value = '".$inf2["nm_estado"]."';\n";
echo "formObj.cep.value = '".$inf2["nm_cep"]."';\n";
}else{
echo "formObj.nome.value = 'ID não Encontrado!';\n";
echo "formObj.endereco.value = '';\n";
echo "formObj.complemento.value = '';\n";
echo "formObj.bairro.value = '';\n";
echo "formObj.cidade.value = '';\n";
echo "formObj.estado.value = '';\n";
echo "formObj.cep.value = '';\n";
}
}
?>
Pergunta
Edgard A Michel
Olá a todos do forum.
Espero que tenham tido um bom final de ano.
Estou com o seguinte problema: Peguei uma função chamada "Dynamic Client Lookup" que preenche um formulário com os dados, a partir do ID digitado. Essa função pode ser conhecida aqui http://www.dhtmlgoodies.com/index.html?page=ajax e http://www.dhtmlgoodies.com/scripts/ajax-c...ent-lookup.html .
Fiz as minhas alterações conforme necessário e ela funciona muito bem até certo ponto. Quando o registro (linha) no banco de dados contém algum campo com palavras acentuadas como "ã", "á", "é", é mostrado como caracteres "estranhos".
Como por exemplo, a palavra "São Paulo" é mostrada "S�Paulo".
O curioso é que quando uma palavra que contenha o "Ó" (ex. Freguesia do Ó) o script todo não funciona!!
Antes de postar o código vou deixar claro que todo o site utiliza o padrão de caracteres ISO-8859-1 (charset=iso-8859-1). As tabelas do banco de dados estão como "Latim1_general_ci" e todos os arquivos salvos em codificação ANSI.
Segue o código:
O Javascript no <HEAD>:
O arquivo PHP que roda a query no banco e retorna os valores: O arquivo ajax.js:Acredito que não tenha faltado nada.
E reforço que esse scritp funciona bem quando não tenho acentos nas palavras.
Editado por Edgard A MichelLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.