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

Que puede estar mal ?

Estas en el tema de Que puede estar mal ? en el foro de Frameworks JS en Foros del Web. Que puede estar mal de lo siguiente? OBJECT REQUIRED es el error en la linea donde tengo var respuesta=ajax.responseXML; Código: <?php //header("Content-Type:text/xml;charset=UTF-8"); session_start();?> <html> <head> ...
  #1 (permalink)  
Antiguo 14/08/2008, 09:17
 
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años, 7 meses
Puntos: 0
Que puede estar mal ?

Que puede estar mal de lo siguiente? OBJECT REQUIRED es el error en la linea donde tengo var respuesta=ajax.responseXML;

Código:
<?php
//header("Content-Type:text/xml;charset=UTF-8");
session_start();?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html+xml; charset=utf-8" />
<script language="javascript" type="text/javascript">
function nuevoAjax(){
 //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(); 
	// xmlhttp.overrideMimeType('text/xml');
	 } 
    return xmlhttp
}
function traerDatos()
{
    var _cod=document.getElementById("cod");
	_cod = _cod.value;
	//alert (cod);
    var campo1=document.getElementById("c1");
    var campo2=document.getElementById("c2");
	var campo3=document.getElementById("c3");
    var campo4=document.getElementById("c4");   
	var campo5=document.getElementById("c5"); 
    var campo6=document.getElementById("c6"); 
	var ajax=nuevoAjax();
    ajax.open("POST", "ej2.php", true);
    ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded charset=ISO-8859-1');
//	alert(cod);
	ajax.send("v="+_cod);           
	ajax.onreadystatechange=function()
	//alert(ajax.send());
    {
	
        if (ajax.readyState == 4)
        {
		  var respuesta=ajax.responseXML;
		  
			//var respuesta2=ajax.responseText;
			//alert(respuesta2);
			//alert (respuesta);
            campo1.value=respuesta.getElementsByTagName('nombre')[0].firstChild.nodeValue;
            campo2.value=respuesta.getElementsByTagName("apellido")[0].firstChild.nodeValue;
			campo3.value=respuesta.getElementsByTagName("ci")[0].firstChild.nodeValue;
            campo4.value=respuesta.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            campo5.value=respuesta.getElementsByTagName("mails")[0].firstChild.nodeValue;
			campo6.value=respuesta.getElementsByTagName("tel")[0].firstChild.nodeValue;
			alert(campo1.value);
		}
    }
}
</script>
  #2 (permalink)  
Antiguo 14/08/2008, 09:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Que puede estar mal ?

Es probable que el documento que recibes no sea un XML, por lo que responseXML no estara en tu objeto AJAX, asegurate que el documento que abres sea un XML valido.

Veo que haces el request a un archivo PHP, asegurate de que la linea header("Content-type: text/xml" ); este puesta.

Saludos.
  #3 (permalink)  
Antiguo 14/08/2008, 12:18
 
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Que puede estar mal ?

Muchas gracias por tu respuesta pero me fije y esta todo correcto a lo que refiere al xml y al header en la pagina php me sigue tirando error solo en IE,
pongo el codigo xml , capaz que hay algo que me equivoco en ese archivo!
Código:
<?php 
header("Content-type: text/xml");
//header("Cache-Control: no-cache, must-revalidate");
//header("Expires: Mon, 01 Jan 2009 01:00:00 GMT");$v=$_POST['v']; 
$v1=$_POST['v'];
//$v1="BURROWS";
//echo $v;
$host = "localhost"; 
$user = "root"; 
$pass = "root"; 
$database = "callcenter";
 
$enlace = mysql_connect($host, $user, $pass) or die("Error MySQL."); 
mysql_select_db($database, $enlace) or die("Error base de datos.");
 
$query = "SELECT  *  FROM usuarios WHERE usuario='$v1'"; 
$resultado = mysql_query($query, $enlace) or die("Sin resultados.");
//echo count($resultado); 
$salida_xml = "<?xml version=\"1.0\"?>\n" ;

$salida_xml .= "<informacion>\n";
$salida_xml .= "<datos>\n";
 
for($x = 0 ; $x < mysql_num_rows($resultado) ; $x++){  
//echo "salio";
    $fila = mysql_fetch_array($resultado); 
    $salida_xml .= "\t<nombre><![CDATA[".$fila['usuario']."]]></nombre>\n"; 
	$salida_xml .= "\t<apellido><![CDATA[" . $fila['apellido'] . "]]></apellido>\n";
	$salida_xml .= "\t<ci><![CDATA[" . $fila['ci'] . "]]></ci>\n";
	$salida_xml .= "\t<codigo><![CDATA[" . $fila['codigo'] . "]]></codigo>\n";
	$salida_xml .= "\t<tel><![CDATA[" . $fila['tel'] . "]]></tel>\n";
	$salida_xml .= "\t<mails><![CDATA[" . $fila['mails'] . "]]></mails>\n";
  
 }
$salida_xml .= "</datos>";
 $salida_xml .= "</informacion>\n";
echo $salida_xml;
 
?>
  #4 (permalink)  
Antiguo 14/08/2008, 13:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Que puede estar mal ?

Mmm muy raro, haz probado en Firefox? Te recomiendo usar la herramienta Firebug, es muy buena para hacer el debug en estos casos.

Saludos.
  #5 (permalink)  
Antiguo 14/08/2008, 14:04
 
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Que puede estar mal ?

en firefox me funciona perfecto.. me llena todos los campos en internet explorer no me llena ninguno y me tira error de OBJECT REQUIRED , y hice un alert para saber la respuesta y no me tira nada osea me tira un alert vacio sin ninguna informacion....


no se que podra ser lo eh probado en varios ie en distintas maquinas y siempre problemas..
......... si se te ocurre algo que pueda estar dando ese problema avisame porfavor!
gracias!!
  #6 (permalink)  
Antiguo 14/08/2008, 14:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Que puede estar mal ?

Mmm muy raro, la verdad no se porque no te va en IE, igual te recomendaria usar una libreria mas establecida como Prototype.

Saludos.
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 18:47.