Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Pasar variables... [PHP+AJAX]

Estas en el tema de Pasar variables... [PHP+AJAX] en el foro de Frameworks JS en Foros del Web. Hola a todos he estado leyendo un buen tiempo el foro y recién ahora me animé a postear, ya que aún no encuentro la forma ...
  #1 (permalink)  
Antiguo 03/08/2011, 22:10
 
Fecha de Ingreso: julio-2011
Mensajes: 32
Antigüedad: 10 años, 1 mes
Puntos: 0
Pregunta Pasar variables... [PHP+AJAX]

Hola a todos he estado leyendo un buen tiempo el foro y recién ahora me animé a postear, ya que aún no encuentro la forma de solucionar mi problema.

El asunto es el siguiente:

Tengo una página PHP con un formulario de registro de clientes (por ejemplo), que incluye datos como RUN (identificador que utilizamos en mi pais), nombre, edad, etc.

Lo que necesito hacer es que en el primer input que es el RUN de la persona, al momento de ingresar datos, estos se verifiquen en mi base de datos sqlserver y si el rut es encontrado, se rellenen el resto de datos del formulario.

eje1.php tengo
Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script language="javascript" type="text/javascript">
  4. function nuevoAjax()
  5. {
  6.     var xmlhttp=false;
  7.     try
  8.     {
  9.         xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  10.     }
  11.     catch(e)
  12.     {
  13.         try
  14.         {
  15.             xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16.         }
  17.         catch(E) { xmlhttp=false; }
  18.     }
  19.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
  20.  
  21.     return xmlhttp;
  22. }
  23.  
  24. function traerDatos()
  25. {
  26.     var cod=document.getElementById("cod").value;
  27.     var campo1=document.getElementById("c1");
  28.     var campo2=document.getElementById("c2");
  29.        
  30.     var ajax=nuevoAjax();
  31.     ajax.open("POST", "ej2.php", true);
  32.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  33.     ajax.send("v="+cod);
  34.            
  35.     ajax.onreadystatechange=function()
  36.     {
  37.         if (ajax.readyState==4)
  38.         {
  39.             var respuesta=ajax.responseXML;
  40.             campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data;
  41.             campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data;
  42.         }
  43.     }
  44. }
  45. </script>
  46. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  47. <title>Ejemplo</title>
  48. </head>
  49. <body>
  50. <input type="text" id="cod"> Codigo <input type="button" id="b1" value="Traer datos" onClick="traerDatos();"><br><br>
  51. <input type="text" id="c1"> Nombre<br><br>
  52. <input type="text" id="c2"> Apellido
  53. </body>
  54. </html>

ejemplo2.php

Código PHP:
Ver original
  1. <?php
  2. $v=$_POST["v"];
  3.  
  4. $conexion=sqlsvr(hago mi conexion a bd)  //verifique y si esta bien la consulta
  5.  
  6. $resultado=sqlsvr_query("SELECT nombre, apellido FROM ejemplo WHERE id='$v'");
  7. $registro=sqlsvr_fetch_row($resultado);
  8.  
  9. $xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
  10. $xml.="<datos>";
  11. $xml.="<nombre><![CDATA[$registro[nombre]]]></nombre>";
  12. $xml.="<apellido><![CDATA[$registro[apellido]]]></apellido>";
  13. $xml.="</datos>";
  14. header("Content-type: text/xml");
  15. echo $xml;
  16. ?>


el problema es que no me funciona algo me debe faltar, me arroja error de javascript en la siguiente linea:

Código Javascript:
Ver original
  1. if (ajax.readyState==4)
  2. {
  3.  var respuesta=ajax.responseXML;
  4.  campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data;// Aqui es el problema linea 40 char 13.
  5.  campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data;
  6.  }

probe que estado me devuelve con esto

Código Javascript:
Ver original
  1. if (ajax.readyState==4) {
  2.    if(ajax.status==200) {
  3.       var respuesta=ajax.responseXML;
  4.       campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data;  
  5.       campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data;
  6.    } else {
  7.       alert("Estado: " + ajax.status + "\nMotivo: " + ajax.statusText);
  8.    }
  9. }

Devuelve:
Estado:200
Motivo: Undefined

que sugieren con version anterior de php si funciona y ahora que uso php5.3 nop

Etiquetas: ajax, php, xml, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:07.