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
<html> <head> <script language="javascript" type="text/javascript"> function nuevoAjax() { var xmlhttp=false; try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch(E) { xmlhttp=false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } return xmlhttp; } function traerDatos() { var cod=document.getElementById("cod").value; var campo1=document.getElementById("c1"); var campo2=document.getElementById("c2"); var ajax=nuevoAjax(); ajax.open("POST", "ej2.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.send("v="+cod); ajax.onreadystatechange=function() { if (ajax.readyState==4) { var respuesta=ajax.responseXML; campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data; campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data; } } } </script> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Ejemplo</title> </head> <body> <input type="text" id="cod"> Codigo <input type="button" id="b1" value="Traer datos" onClick="traerDatos();"><br><br> <input type="text" id="c1"> Nombre<br><br> <input type="text" id="c2"> Apellido </body> </html>
ejemplo2.php
Código PHP:
Ver original
<?php $v=$_POST["v"]; $conexion=sqlsvr(hago mi conexion a bd) //verifique y si esta bien la consulta $resultado=sqlsvr_query("SELECT nombre, apellido FROM ejemplo WHERE id='$v'"); $registro=sqlsvr_fetch_row($resultado); $xml="<?xml version='1.0' encoding='ISO-8859-1'?>"; $xml.="<datos>"; $xml.="<nombre><![CDATA[$registro[nombre]]]></nombre>"; $xml.="<apellido><![CDATA[$registro[apellido]]]></apellido>"; $xml.="</datos>"; echo $xml; ?>
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
if (ajax.readyState==4) { var respuesta=ajax.responseXML; campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data;// Aqui es el problema linea 40 char 13. campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data; }
probe que estado me devuelve con esto
Código Javascript:
Ver original
if (ajax.readyState==4) { if(ajax.status==200) { var respuesta=ajax.responseXML; campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data; campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data; } else { alert("Estado: " + ajax.status + "\nMotivo: " + ajax.statusText); } }
Devuelve:
Estado:200
Motivo: Undefined
que sugieren con version anterior de php si funciona y ahora que uso php5.3 nop