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

Problema php a xml

Estas en el tema de Problema php a xml en el foro de Frameworks JS en Foros del Web. Dias hace que tengo un problema y no logro resolverlo. tengo un PHP que genera un XML, cuando lo pruebo en todos los navegadores funciona ...
  #1 (permalink)  
Antiguo 29/03/2010, 00:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema php a xml

Dias hace que tengo un problema y no logro resolverlo.
tengo un PHP que genera un XML, cuando lo pruebo en todos los navegadores funciona perfectamente.
Pero cuando lo llamo desde javascript

GDownloadUrl("leemarcadores.php", function(data, responseCode){

funciona en todos menos IE que me casca en las Ñ y acentos.
  #2 (permalink)  
Antiguo 29/03/2010, 02:58
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años
Puntos: 19
Respuesta: Problema php a xml

Usas una función muy rara para cargar el XML desde Javascript. Mirate AJAX que usa un sistema más global.

Código Javascript:
Ver original
  1. function load_xhtml(){
  2.   var data = false;
  3.   try{data = new XMLHttpRequest();}
  4.   catch(e){
  5.    try{data = new ActiveXObject("Msxml2.XMLHTTP");}
  6.    catch(e){
  7.     try{data = new ActiveXObject("Microsoft.XMLHTTP");}
  8.     catch(e){
  9.      alert("Error: El objeto HTTP que se requiere no pudo ser creado. Es posible que esté usando un navegador que no soporte AJAX.");
  10.      return false;
  11.     }
  12.    }
  13.   }
  14.   data.open("POST", "tuarchivo.xml", true);
  15.   data.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  16.   data.send("parametro_POST=valor&parameter_POST=value");
  17.   data.onreadystatechange = function(){
  18.    //Aquí pones el código a realizar cuando cambie el estado
  19.    //esto lo tienes que mirar un poco más por tu cuenta.
  20.   }
  21.  }
  22. }

Si no te gusta esto puedes comprobar que hayas puesto el header de XML correctamente "Content-Type: text/xml"
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #3 (permalink)  
Antiguo 29/03/2010, 08:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP orientado a objetos a AJAX
  #4 (permalink)  
Antiguo 31/03/2010, 20:40
 
Fecha de Ingreso: septiembre-2009
Mensajes: 58
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema php a xml

te falta mas que Nada la funcion que realiza el parseo de los datos recibidos por ejemplo te muestro uno

Código PHP:
<?php
header
('Content-type:text/xml');
conect_database();
function 
conect_database()
{

//conecto con la base de datos 
$conn mysql_connect("localhost","root",""); 
//selecciono la BDD 
mysql_select_db("sisae",$conn)or die("Error al escoger base de datos"); 

//Sentencia SQL para buscar un usuario con esos datos 
$ssql "SELECT * FROM usuarios"

//Ejecuto la sentencia 
$rs mysql_query($ssql,$conn); 

//vemos si el usuario y contraseña es váildo 
//si la ejecución de la sentencia SQL nos da algún resultado 
//es que si que existe esa conbinación usuario/contraseña 
if (mysql_num_rows($rs)!= 0){ 
    echo
"<?xml version='1.0' encoding='iso-8859-1'?>";
    echo 
"\n";
    echo 
"<bases>";
     while (
$row mysql_fetch_array($rs))
      {
        echo 
"<simple>";
        echo 
"<nombre>";
        echo 
$row['nombre'];
        echo 
"</nombre>";
        echo 
"\n";
        echo
"<pass>";
        echo 
$row['clave'];
        echo 
"</pass>";
        echo 
"\n";
        echo 
"</simple>";
      }
    echo 
"</bases>";  
}else { 
    
//si no existe le mando otra vez a la portada 
    
echo"error usuario"

mysql_free_result($rs); 
mysql_close($conn); 
}
?>
No se te olvide declarar el header de tipo XML para que puedas parsearlos y la funcion quedaria asi


Despues de tu instanciacion quedaria algo asi tu funcion que recoje los datos

Código Javascript:
Ver original
  1. function Parseo(xml){//PERDONEN UN POCO LAS PALABRAS PERO ESTABA DE MALAS CUANDO HICE ESTE JEJEJEEJ
  2.     rss = xml;
  3.     alert(rss);
  4.     var Cadena = "<table border='1'>";
  5.     //Esto es una forma de Valuar el texto $('mainContent').innerHTML = leerTextoEnTag(rss.getElementsByTagName("titulo")[ 0]);
  6.     //Cadena = leerTextoEnTag(rss.getElementsByTagName("titulo")[ 0]);//rss es una variable de tipo texto pero no se puede modificar nada mas
  7.     //alert ("Creando Tabla");
  8.     var x = rss.getElementsByTagName("simple");
  9. for (var i=0;i<x.length;i++)
  10. {
  11. Cadena = Cadena + "<tr>";
  12. Cadena = Cadena + "<td>";
  13. Cadena = Cadena + x[i].getElementsByTagName("nombre")[0].childNodes[0].nodeValue;
  14. Cadena = Cadena + "</td>";
  15.  
  16. Cadena = Cadena + "<td>";
  17. Cadena = Cadena + x[i].getElementsByTagName("pass")[0].childNodes[0].nodeValue;
  18. Cadena = Cadena + "</td>";
  19. }
  20.  
  21.  
  22. Cadena = Cadena + "</table>";
  23. document.getElementById('mainContent').innerHTML = Cadena;
  24. }
  25.  
  26.  
  27.  
  28. function leerTextoEnTag(elemento)
  29. {
  30.     if(elemento!=undefined)
  31.     return elemento.firstChild.nodeValue;
  32.     else
  33.     return "No hay nada Ups!";
  34. }

Última edición por MaxMental; 31/03/2010 a las 20:40 Razón: ALGUNAS FALTAS

Etiquetas: ajax, php, xml
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 05:45.