El error es que habian algunas sentencias que eran para enviar varios datos, al eliminar el envio del vector se podria el error.
Encontre un codigo que hace justo lo que nesecito y de manera mas simple, me permite actualizar varios campos a la vez basados en el valor de uno solo (EJ: ID)
le hice una pequeña modificación para que se ejecute en el evento onChange.
Por si alguien le sirve:
ej1.php
Código:
<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;// Rescata el contenido del archivo XML retornado del servidor:
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" onChange="traerDatos(this.form)"> Codigo <br><br>
<input type="text" id="c1"> Nombre<br><br>
<input type="text" id="c2"> Apellido
</body>
</html>
ej2.php
Código:
<?php
$v=$_POST["v"];
$conexion=mysql_connect("localhost", "root", "");
mysql_select_db("ajax", $conexion);
$resultado=mysql_query("SELECT nombre, apellido FROM ejemplo WHERE id='$v'");
$registro=mysql_fetch_row($resultado);
$xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<nombre><![CDATA[$registro[0]]]></nombre>";
$xml.="<apellido><![CDATA[$registro[1]]]></apellido>";
$xml.="</datos>";
header("Content-type: text/xml");
echo $xml;
?>