ComboBox relacionados
Publicado por German (3 intervenciones) el 13/02/2007 20:38:23
Buenos dias
Mi consulta es la siguiente
Tengo una pagina cliente que posee tres combobox el primero relacionado con el segundo y el segundo con el tercero. Cree el codigo pero el problema es el siguiente, el codigo se ejecuta una sola vez, en otras palabras si selecciono el primer combo se llena el segundo, pero si lo selecciono otra ves, me aparece un error informando que "objetus is not a function"
A continuacion le agrego el codigo que hice
Cliente.html
<html>
<head>
<script language="javascript" type="text/javascript">
//funcion encargada de crear el objeto
function objetus() {
try {
objetus = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
objetus= new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
objetus= false;
}
}
if (!objetus && typeof XMLHttpRequest!='undefined') {
objetus = new XMLHttpRequest();
}
return objetus
}
//la funcion que hará el trabajo sucio
//esta funcion es la que llamamos en el evento ONCLICK de nuestro boton
function primer_tope(campo)
{
//creamos el objeto
_objetus=objetus(); //AQUI ME APARECE EL ERROR LA SEGUNDA VEZ Q EJECUTO
//cargamos una varible con las variables que vamos a enviar
_values_send="funcion="+campo;
_URL_="procesador.php?"
_objetus.open("GET",_URL_+"&"+_values_send,true);
//una vez enviado los valores inmediatamente llamamos a la propiedad
//onreadystatechange
_objetus.onreadystatechange=function() {
//dentro de la funcion comprobamos el estado del proceso
//si es 4 (terminado) pedimos lo que nos han mandado
if (_objetus.readyState==4)
{
if (_objetus.readyState==4)
{
//usamos la propiedad responseText para recibir en una cadena
//lo que nos mandaron
if (campo == 1) {
target="nuestrodiv_id2"
}else{
target="nuestrodiv_id3"
}
//agrego en el option el valor traido del servidor
//el valor options[0] es el indice del option comenzando de cero
document.getElementById(target).options[0].text=objetus.responseText;
}
}
}
_objetus.send(null);
}
</script>
<select size="1" name="Name" id="nuestrodiv_id1" onChange="primer_tope(1);">
<option value="value1">Item1</option>
<option value="value1">Item2</option>
</select>
<select size="1" name="Name" id="nuestrodiv_id2" onChange="primer_tope(2);">
<option value="value1">Item2</option>
<option value="value1">Item3</option>
</select>
<!-- <input name="Name" type="text" value="" id="nuestrodiv_id2">-->
<SELECT NAME="Name" id="nuestrodiv_id3">
<OPTION VALUE="value1">valor3
<OPTION VALUE="value1">valor4
</SELECT>
</body>
</html>
procesador.php
<?php
if(isset($_GET['funcion']))
{
$_valor=$_GET['funcion'];
if($_valor=="1")
{
$_pt= "German Olivera";
}
else
{
$_pt= "Olivera";
}
echo $_pt;
}
else
{
echo "No se a enviado valor alguno de peticion";
}
?>
Mi consulta es la siguiente
Tengo una pagina cliente que posee tres combobox el primero relacionado con el segundo y el segundo con el tercero. Cree el codigo pero el problema es el siguiente, el codigo se ejecuta una sola vez, en otras palabras si selecciono el primer combo se llena el segundo, pero si lo selecciono otra ves, me aparece un error informando que "objetus is not a function"
A continuacion le agrego el codigo que hice
Cliente.html
<html>
<head>
<script language="javascript" type="text/javascript">
//funcion encargada de crear el objeto
function objetus() {
try {
objetus = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
objetus= new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
objetus= false;
}
}
if (!objetus && typeof XMLHttpRequest!='undefined') {
objetus = new XMLHttpRequest();
}
return objetus
}
//la funcion que hará el trabajo sucio
//esta funcion es la que llamamos en el evento ONCLICK de nuestro boton
function primer_tope(campo)
{
//creamos el objeto
_objetus=objetus(); //AQUI ME APARECE EL ERROR LA SEGUNDA VEZ Q EJECUTO
//cargamos una varible con las variables que vamos a enviar
_values_send="funcion="+campo;
_URL_="procesador.php?"
_objetus.open("GET",_URL_+"&"+_values_send,true);
//una vez enviado los valores inmediatamente llamamos a la propiedad
//onreadystatechange
_objetus.onreadystatechange=function() {
//dentro de la funcion comprobamos el estado del proceso
//si es 4 (terminado) pedimos lo que nos han mandado
if (_objetus.readyState==4)
{
if (_objetus.readyState==4)
{
//usamos la propiedad responseText para recibir en una cadena
//lo que nos mandaron
if (campo == 1) {
target="nuestrodiv_id2"
}else{
target="nuestrodiv_id3"
}
//agrego en el option el valor traido del servidor
//el valor options[0] es el indice del option comenzando de cero
document.getElementById(target).options[0].text=objetus.responseText;
}
}
}
_objetus.send(null);
}
</script>
<select size="1" name="Name" id="nuestrodiv_id1" onChange="primer_tope(1);">
<option value="value1">Item1</option>
<option value="value1">Item2</option>
</select>
<select size="1" name="Name" id="nuestrodiv_id2" onChange="primer_tope(2);">
<option value="value1">Item2</option>
<option value="value1">Item3</option>
</select>
<!-- <input name="Name" type="text" value="" id="nuestrodiv_id2">-->
<SELECT NAME="Name" id="nuestrodiv_id3">
<OPTION VALUE="value1">valor3
<OPTION VALUE="value1">valor4
</SELECT>
</body>
</html>
procesador.php
<?php
if(isset($_GET['funcion']))
{
$_valor=$_GET['funcion'];
if($_valor=="1")
{
$_pt= "German Olivera";
}
else
{
$_pt= "Olivera";
}
echo $_pt;
}
else
{
echo "No se a enviado valor alguno de peticion";
}
?>
Valora esta pregunta


0