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

Recargar Combo

Estas en el tema de Recargar Combo en el foro de Frameworks JS en Foros del Web. Buenas tengo un problema con la recarga de este codigo y ya no se me ocurre que hacer. La idea es que cuando elijo la ...
  #1 (permalink)  
Antiguo 22/07/2008, 09:13
 
Fecha de Ingreso: junio-2008
Mensajes: 4
Antigüedad: 16 años, 6 meses
Puntos: 0
Recargar Combo

Buenas tengo un problema con la recarga de este codigo y ya no se me ocurre que hacer. La idea es que cuando elijo la provincia, el otro combo se recargue con las localidades, esto lo hace cuando inicio la pagina sin problema, pero si elijo otra provincia se carga esa provincia con sus localidad mas las localidades de la seleccion anterior . Me fije en el firebug y la respuesta son los datos solicitados, pero el que no se modifica es html, es como que lo agrega .... les dejo el codigo (ademas le puede servir a alguien)

principal.php

<p>
<select name="provincia" id="combo1" onchange="carga(this.value)">
<option selected value = "0">--------- Elija Provincia ---------</option>
<?
$provincia = $db->consulta("select id_provincia, provincia from aux_provincia order by provincia");

while ($prov = mysql_fetch_array($provincia)) {
echo "<OPTION value = $prov[id_provincia] > $prov[provincia] </option>";
}

?>

</SELECT>

<select id="combo2">
<option selected value= "0">--------- Elija Localidad ---------</option>
</select>
</p>

ajax.php

<?php
include ('../includes/funciones.inc.php');

$val = $_POST["val"]; //= 3;

$val= $db->consulta("select id_localidad, localidad from aux_localidad where id_provincia = '$val' order by localidad");

$xml .= '<datos>' ;
while ($valor= mysql_fetch_array($val)) {
$xml .= '<valor>'.$valor[localidad].'</valor>';

}
$xml .= '</datos>';
header('Content-type: text/xml');
echo $xml;
unset($val);
?>


Script.js

// <![CDATA[
function ajaxobj() {
try {
_ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
_ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
_ajaxobj = false;
}
}

if (!_ajaxobj && typeof XMLHttpRequest!='undefined') {
_ajaxobj = new XMLHttpRequest();
}

return _ajaxobj;
}

function carga(val) {
var ajax = ajaxobj();
ajax.open("POST", "ajax.php", true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
var datos = (ajax.responseXML).firstChild;
var obj = document.getElementById("combo2");
for (var i=0; i<obj.options.length; i++) {
obj.removeChild(obj.firstChild);
}
for (var i=0; i<datos.childNodes.length; i++) {
var elem = datos.childNodes[i].firstChild.data;
obj.options[i] = new Option(elem);
}
}
}
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajax.send("&val="+val);
}

// ]] >
  #2 (permalink)  
Antiguo 22/07/2008, 13:16
 
Fecha de Ingreso: junio-2008
Mensajes: 4
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Recargar Combo

Estube viendo mas en profundidad y pareciear que es un tema de childnode, que solo me borra una cierta cantidad de registro y pone otros, es decir que una provincia tiene 100 localidades, elijo otra con 50, me borra los primero 50 y me deja los otros 50 de la otra localidad .. es una idea la verdad no se mucho de ajax ..

Muy agradecido al que me pueda dar una mano
  #3 (permalink)  
Antiguo 23/07/2008, 06:48
 
Fecha de Ingreso: junio-2008
Mensajes: 4
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Recargar Combo

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