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

select a partir de un xml

Estas en el tema de select a partir de un xml en el foro de Frameworks JS en Foros del Web. Mi problema es el siguiente: Tengo una pagina con dos select. El segundo debe actualizarce a partir del primero. Lo que no se hacer es ...
  #1 (permalink)  
Antiguo 09/06/2007, 11:15
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 10 meses
Puntos: 1
select a partir de un xml

Mi problema es el siguiente:

Tengo una pagina con dos select. El segundo debe actualizarce a partir del primero.

Lo que no se hacer es como recorrer el xml que me envia el servidor.

Asi formo el xml

Código PHP:
<?
include('funciones.php');
$edo $_GET['loc'];
        
$sql="select * from parloc where codpar = 1";//.$edo;
        
$res=mysql_query($sql);
        
$xml "<?xml version='1.0'><localidades><localidad>";
        while (
$row mysql_fetch_array($res))
        {    
            
$id=$row['codloc'];            
            
$desc=$row['descripcion'];
            
$xml .="<id>".$id."</id>";
            
$xml .= "<desc>".$desc."</desc>";
            
//echo "<option value='".$id."'> ".$desc." </option>";        
        
}
        
$xml .= "<localidad></localidades></xml>";
        echo 
$xml;
?>
desde otro php lo que quiero hacer es formar el selec con el xml enviado

este es el codigo. No pongo la funcion de crear el objeto :).

Lo que si, no me doy cuenta como recorrer el xml formando los tag de option.

Código PHP:
function cargarContenido(){
var d1,contenedor;

contenedor = document.getElementById('contenedor');
localidad = document.getElementById('locadidad');
//contenedor es el <div> , donde al final pintaremos el nuevo select
d1 = document.QForm.partido.options[document.QForm.partido.selectedIndex].value; 
//d1 = document.getElementById('localidad').value;
// recibimos en una variable el valor del estado elegido

ajax=nuevoAjax();
//aqui creamos una instancia del objeto ajax

ajax.open("GET", "procesos.php?loc="+d1,true);
// con esto enviamos al archivo .php el valor del estado para que sea ejecutado

ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
   //En esta parte del código, se revisa cuando el ha sido procesada la carga del AJAX
   contenedor.innerHTML = ajax.responseXML;
   //CON en esta línea, decimos que pinte el resultado en nuestro div "contenedor"
   localidad.value=respuesta.getElementsByTagName("desc")[0].childNodes[0].data;
}
}
ajax.send(null)
// aqui se hace el envio del objeto
}
</script> 
<link href="paleta.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="titulo" >Fichero de Inmuebles</div>
<form method="post" action="guardar_fichero.php" onSubmit="return validar();" name="QForm">

        Partido

        <select name="partido" id="partido" style="width:100% " onChange="cargarContenido(this.partido)">
        <?
        $sql
="select * from partidosnac";
        
$res=mysql_query($sql);
        while (
$row=mysql_fetch_array($res))
        {
        
$id=$row['codpar'];
        
$desc=$row['descripcion'];
        echo 
"<option value=$id>".$desc."</option>";        
        }
        
?>

            
        </select>
      
        

<div id="contenedor">

        <select name="localidad" id="localidad" style="width:100%" >
            <option> </option>
        
</div>

</select>
saludos.
__________________
http://www.rollermountain.com
  #2 (permalink)  
Antiguo 10/06/2007, 16:26
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 1 mes
Puntos: 3
Re: select a partir de un xml

mm no se PHP y no comprendo bien el còdigo, pero si no me equivoco, estas pintando con PHP el combo? si es asi y si es que quieres usar el objeto XML que recives con AJAX deverias usar DOM, para poder crear elementos dinamicamente, y estas seguro de que pintas un XML valido? ahora no traigo el apunte, pero mañana te paso un ejemplo, pero si quisiera que pegaras una imagen de la pantalla que se despliega con el XML que formas o una liga si puedes...
__________________
Wow! No se que decir...
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 19:05.