Foros del Web » Programando para Internet » Javascript »

Select dinamico + Ajax

Estas en el tema de Select dinamico + Ajax en el foro de Javascript en Foros del Web. Hola a todos, espero puedan ayudarme, tengo un codigo en PHP que lee una lista de planes desde la BD y el resultado lo genera ...
  #1 (permalink)  
Antiguo 23/11/2011, 17:11
 
Fecha de Ingreso: octubre-2003
Ubicación: Concepción
Mensajes: 84
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Select dinamico + Ajax

Hola a todos, espero puedan ayudarme, tengo un codigo en PHP que lee una lista de planes desde la BD y el resultado lo genera como documento XML:

Código PHP:
<?php
session_start
();
require 
"leeplan-controller.php";

$PLANTELEFONIA=$_SESSION["PLANESCEL"];

$numplanes=count($PLANTELEFONIA);
echo 
"<?xml version='1.0' encoding='UTF-8' ?>";
?>
<consultaplanes>
<?php 
    
for ($i=0;$i<$numplanes;$i++)
     {
?>
        <plan>
        <nombre><?php echo $PLANTELEFONIA[$i]["descPlan"];?></nombre>
        <codigo><?php echo $PLANTELEFONIA[$i]["idPlan"];?></codigo>
        </plan>
<?php 
      
}
?>  
</consultaplanes>
el archivo se llama leeplan-view.php y si lo ejecuto directamente rescata la información en formato correcto, es decir el documento XML. El documento generado tiene esta forma:

Código HTML:
 <?xml version="1.0" encoding="UTF-8" ?> 
- <consultaplanes>
- <plan>
  <nombre>Plan Multimedia 100 minutos todo destino</nombre> 
  <codigo>M100</codigo> 
  </plan>
- <plan>
  <nombre>Plan Multimedia 200 minutos todo destino</nombre> 
  <codigo>M200</codigo> 
  </plan>
- <plan>
  <nombre>BlackBerry 800 minutos todo destino</nombre> 
  <codigo>BB800</codigo> 
  </plan>
- <plan>
  <nombre>Iphone 400 minutos todo destino</nombre> 
  <codigo>IP400</codigo> 
  </plan>
  </consultaplanes> 
El punto es que esta información (que obviamente puede variar en función de los registros almacenados en la BD) debo cargarla en un elemento de tipo <select> y para ello estoy utilizando Ajax (se que se puede hacer de otra forma pero mi problema es con Ajax). Con esta funcion estoy tratando de realizar esta accion:

Código:
      function leePlanesAjax()
      {
           var ajax=newAjax();
           
           ajax.open("GET", "leeplan-view.php", true); //no se enviaran datos, por eso modo GET
	         ajax.send(); //método send con argumento null, pues método de envío especificado es GET
	         
	        
	        ajax.onreadystatechange=function()
        	{
        		if (ajax.readyState==4)
        		{
        			xmlDoc=ajax.responseXML;
        			document.getElementById("pln").innerHTML=xmlDoc; // --> esto pone en la pagina el valor [objet]]
              var plan=xmlDoc.getElementsByTagName("plan"); 
              document.getElementById("pln").innerHTML=plan.length //-->esto pone en la pagina valor cero
        			nombre="";
        			codigo="";
        			
        			for (i=0;i<plan.length;i++)   //cantidad de nodos con tag "plan"
                {
                  nombre=plan[i].childNodes[0].nodeValue + "<br/>"; //accede al primer nodo "plan" y a su vez al primer nodo hijo que corresponde al tag "nombre"
                  document.getElementById("pln").innerHTML=nombre;
                  codigo=plan[i].childNodes[1].nodeValue + "<br/>"; //accede al primer nodo "plan" y a su vez al segundo nodo hijo que corresponde al tag "codigo"
                }
        		}
        	}           
      }
El inconveniente que tengo es que aparentemente extraigo el documento XML pero cuando trato de acceder al arbol DOM es como si estuviera vacío. Se que el elemento <select> lo debo construir por separado, pero mientras no logre tener acceso a la información no puedo hacer esta construcción, ¿alguien puede darme una idea de que estoy haciendo mal?
Muchas gracias

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 09:55.