Espero me puedan ayudar con este tema, que está algo complicado para mi...
Tengo una función AJAX que ha funcionado correctamente por años y está implementada en todo un sistema web.
Resulta que hace poco nos cambiamos de servidor y posee algunas diferencias de caracteres, lo que nos dió algunos problemas que ya hemos solucionado, pero a la vez ha aparecido uno nuevo y esta vez tiene que ver con Javascript.
Cuando completo un formulario y presiono el botón de enviar, los caracteres como tildes o eñes no se muestran correctamente.
Este es un resumen de la funcion AJAX que uso:
Código Javascript:
Ver original
function GET_ajax(http,div_name,frm_name) { var GET_xmlhttp = false; var frm = false var url = ""; try { GET_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { GET_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { try { GET_xmlhttp = new XMLHttpRequest(); } catch (e) { GET_xmlhttp = false; }}} if (!GET_xmlhttp) return null; frm = document.getElementById(frm_name); url = "frm_name=" + frm_name; for (i = 0; i < frm.elements.length; i++) { url = url + "&" + frm.elements[i].name + "=" + escape(frm.elements[i].value); } GET_xmlhttp.open("GET", http + ".php?" + url, true); GET_xmlhttp.setRequestHeader('Content-type', "application/x-www-form-urlencoded; charset=utf-8"); GET_xmlhttp.onreadystatechange = function() { if (GET_xmlhttp.readyState == 4) { // Aqui muestro el contenido de GET_xmlhttp en el elemento div_name } } GET_xmlhttp.send(null); return false; }
el problema lo estoy teniendo con la variable "url" que lleva una cadena get, si pongo un alert de esta variable obtengo algo como esto cuando envío la palabra señor:
frm_name=form_main&mail=Se%F1or%20&action=save&but ton=Guardar
este valor se envía y php no puede leerla correctamente. lo extraño es que antes funcionaba bien, no se me ocurre que pueda estar saliendo mal, agradecería cualquier ayuda!
Gracias