Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/05/2012, 09:22
Avatar de stramin
stramin
 
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Codificación URL en AJAX

Saludos!

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
  1. function GET_ajax(http,div_name,frm_name) {
  2.     var GET_xmlhttp = false;
  3.     var frm = false
  4.     var url = "";
  5.     try { GET_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  6.     catch (e) { try { GET_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  7.     catch (e) { try { GET_xmlhttp = new XMLHttpRequest(); }
  8.     catch (e) { GET_xmlhttp = false; }}}
  9.     if (!GET_xmlhttp) return null;
  10.     frm = document.getElementById(frm_name);
  11.     url = "frm_name=" + frm_name;
  12.     for (i = 0; i < frm.elements.length; i++) {
  13.         url = url + "&" + frm.elements[i].name + "=" + escape(frm.elements[i].value);
  14.     }
  15.     GET_xmlhttp.open("GET", http + ".php?" + url, true);
  16.     GET_xmlhttp.setRequestHeader('Content-type', "application/x-www-form-urlencoded; charset=utf-8");
  17.     GET_xmlhttp.onreadystatechange = function() {
  18.         if (GET_xmlhttp.readyState == 4) {
  19.             // Aqui muestro el contenido de GET_xmlhttp en el elemento div_name
  20.         }
  21.     }
  22.     GET_xmlhttp.send(null);
  23.     return false;
  24. }

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
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D