tildes en Ajax, MySql, PHP

53 views
Skip to first unread message

anibal_k

unread,
Sep 8, 2006, 7:04:01 AM9/8/06
to Ajax-es
Hola, Tengo un problema con una aplicacion web que estoy desarrollando
utilizando PHP, MySql y Ajax. Cuando intento insertar en base de datos
alguna cadena que contiene una tilde, en la base de datos se insertan
caracteres del estilo (á, é,Ã,ó,....) y al recuperarlos
obtengo esos simbolos. Sin embargo si inserto directamente sobre la
base de datos alguna cadena con tilde al recuperarla por la aplicacion
me muestra una interrogacion sustituyendo el caracter con la tilde. He
de decir que cuando quiero insertar desde la aplicacion web, uso ajax
para redirigir los parámetros del formulario, en algunos caso paso los
parametros por el POST y otras veces por GET.Mi base de datos tiene el
sistema de caracteres "latin1".
¿Qué puedo hacer para solucionar este problema ?. Gracias de
antemano.
Os pego mi funcion Ajax que reenvia los datos del formulario a la
pagina php que se encarga de insertar en la base de datos.

function conexion_ajax1(msj ,capa, form, url )
{
var xmlhttp = getObjRequest();
var campos_form = "";
var separador_campos = "";
var elementos = 0;

//En caso de que pasemos el id del formulario
if ( form != "" )
{
elementos = $(form).elements.length;
//Obtenemos una cadena con todos los campos y valores del formulario.
for ( var i = 0; i <= elementos - 1; i++ )
{
campos_form += separador_campos + $(form).elements[i].name + '=' +
encodeURI( $(form).elements[i].value );
separador_campos = "&";
}
}
//Si existe el objet XMLHttpRequest
if (xmlhttp){
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
$(capa).innerHTML = xmlhttp.responseText;
} else {
$(capa).innerHTML = "<b>Ajax: Se produjo un error en la
comunicación con el servidor - " + xmlhttp.status + "</b>";
}
}
else if (xmlhttp.readyState == 1) {
if (msj == ""){
msj = "Cargando ...";
}
$(capa).innerHTML = " <img width=\"20px\" height=\"20px\"
src=\"../../../../../imagenes/cargando.gif\"> <b>" + msj + "</b>";
}
};

xmlhttp.open("POST", url, true);
//La siguiente linea es para enviar parametros por el
xmlhttp.send(campo=valor&...)
xmlhttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Cache-Control", "no-cache");
//enviamos los campos y valores del formulario
xmlhttp.send( campos_form );
}
else{
$(capa).innerHTML = "<b>Ajax: No se ha encontrado el objeto
XMLHttpRequest para este navegador.<br>Póngase en contacto con el
administrador.</b>";
}
}

Reply all
Reply to author
Forward
0 new messages