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

Se me repite el combo

Estas en el tema de Se me repite el combo en el foro de Frameworks JS en Foros del Web. Un saludo a todos, lo q estoy haciendo es q cuando selecciono el valor de un combo se me carge un valor en un textbox ...
  #1 (permalink)  
Antiguo 20/10/2008, 23:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Se me repite el combo

Un saludo a todos, lo q estoy haciendo es q cuando selecciono el valor de un combo se me carge un valor en un textbox dependiendo de lo q seleccione en el combo. Lo estoy haciendo con ajax el problema es q cuando selecciono el valor se me repite el combo en la pagina es decir me salen dos combos. Q puedo hacer este es el codigo en ajax

var peticion = false;
var testPasado = false;
try {
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
peticion = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
peticion = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
peticion = false;
}
}
}
if (!peticion)
alert("ERROR AL INICIALIZAR!");

function cargarCombo (url, comboAnterior, element_id) {

var element = document.getElementById(element_id);

var valordepende = document.getElementById(comboAnterior)
var x = valordepende.value

var fragment_url = url+'?Id='+x;

element.innerHTML = '<img src="loading.gif" />';

peticion.open("GET", fragment_url);

peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {
element.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}

y en el evento onchange="javascript:cargarCombo('mipagina.php', 'combodependiente', 'div_donde se quiere cargar')"



Mucahas gracias de antemano y espero q me puedan ayudar
  #2 (permalink)  
Antiguo 21/10/2008, 08:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Se me repite el combo

Hola danteq,

Viendo el código que tienes, es dificíl saber porque se repite ya que tu estas asignando directamente el responseText a un HTML, por lo que si ese responseText es un combo se te va a repetir.

Saludos.
  #3 (permalink)  
Antiguo 21/10/2008, 09:24
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Se me repite el combo

GatorV, muchas gracias por responderme y por sacarme de la duda pero no se me ocurren soluciones para este problema

mi pagina html es asi:

<select name="cboProducto" id="cboProducto" onchange="javascript:cargarCombo('combo.php', 'cboProducto', 'div_combodependiente')" >
<option value="">Selecciona</option>
<?php
while ($datos= pg_fetch_array($resultado))
{
echo "<option value='$datos[des_tip]'>$datos[des_tip]</option>";
}
?>
</select>


<div id="div_combodependiente">
<?php $valor=$_REQUEST['Id']; ?>
<input name="txtValor" type="text" id="txtValor" value="<?php echo $valor;?>" />

</div>

Y el archivo ajax tiene lo siguiente:

var peticion = false;
var testPasado = false;
try {
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
peticion = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
peticion = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
peticion = false;
}
}
}
if (!peticion)
alert("ERROR AL INICIALIZAR!");

function cargarCombo (url, comboAnterior, element_id) {

var element = document.getElementById(element_id);

var valordepende = document.getElementById(comboAnterior)
var x = valordepende.value

var fragment_url = url+'?Id='+x;

element.innerHTML = '<img src="loading.gif" />';

peticion.open("GET", fragment_url);

peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {

element.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}

Gracias y espero no ser una molestia y por favor me puedan ayudar ya q cuando ejecuto este codigo se me repite el combo
  #4 (permalink)  
Antiguo 21/10/2008, 10:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Se me repite el combo

Como te comento, si tu regresas en tu responseText otro combo, se va a poner el combo, el problema esta en la parte donde regresas el valor de tu responseText.

Saludos.
  #5 (permalink)  
Antiguo 21/10/2008, 13:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Se me repite el combo

Muchas gracias por contestarme Gatorv y si fuiste muy claro con el problema. El inconveniente es q yo recibo el combo independiente para tomar su valor y dicho valor mostrarlo en otro tipo de control en mi caso un textbox. El ajax cumple su objetivo me arroja el valor en el textbox dependiendo de lo seleccionado en el combo pero tambien me arroja nuevamente el combo.

Si entiendo lo q me dices el asunto es q soy nuevo con Ajax y no se me ocurre algo para evitar q se repita el combo o en otras palabra no tengo ni idea de que hacer

Gracias de antemano y perdoname si te estoy causando molestias o incomodidades
  #6 (permalink)  
Antiguo 21/10/2008, 15:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Se me repite el combo

Lo que tienes que hacer es ver el archivo a donde haces el post, revisa que ese archivo no te este duplicando el combo.

Saludos.
  #7 (permalink)  
Antiguo 21/10/2008, 15:52
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Se me repite el combo

Ya revise lo q me dices pero no entiendo la pagina solamente tiene un combo y en el evento onchange tiene la funcion para llamar al ajax mira este es todo el codigo esperando no cauarte molestias Gatorv me serviria mucho si me ayudaras aun mas con el asunto:

<?php

$conexion= pg_connect("host=localhost port=XXXX dbname=prueba user=postgres password=XXXXXX");

$consulta="select t.des_tip from tipo_alimento t, alimento a where t.cod_tip=a.cod_tip group by t.des_tip order by des_tip";
$resultado = pg_query($conexion,$consulta);
?>

<select name="cboProducto" id="cboProducto" onchange="javascript:cargarCombo('combo.php', 'cboProducto', 'div_combodependiente')" >
<option value="">Selecciona</option>
<?php
while ($datos= pg_fetch_array($resultado))
{
echo "<option value='$datos[des_tip]'>$datos[des_tip]</option>";
}
?>
</select>

<div id="div_combodependiente">
<?php
$parametro=$_REQUEST['Id'];
echo $parametro;
$consulta="select avg(a.val_tot_ali) as promedio from tipo_alimento t, alimento a where t.cod_tip=a.cod_tip and t.des_tip='".$parametro."' group by t.des_tip order by des_tip";

$resultado = pg_query($conexion,$consulta);

while ($datos= pg_fetch_array($resultado))
{
$valor=number_format($datos[promedio],"","","");
}

?>
<input name="txtValor" type="text" id="txtValor" value="<?php echo $valor;?>" />

</div>


esa es la pagina donde se va a mostrar todo o la q va a visualizar los combos
y este es el ajax:

var peticion = false;
var testPasado = false;
try {
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
peticion = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
peticion = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
peticion = false;
}
}
}
if (!peticion)
alert("ERROR AL INICIALIZAR!");

function cargarCombo (url, comboAnterior, element_id) {

var element = document.getElementById(element_id);

var valordepende = document.getElementById(comboAnterior)
var x = valordepende.value

var fragment_url = url+'?Id='+x;

element.innerHTML = '<img src="loading.gif" />';

peticion.open("GET", fragment_url);

peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {

element.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}


Ya he probado varias cosas y sigue repiendome el combo No tengo ni idea q mas cambiar o q mas hacer, asi q encarecidamente te suplico q me regales tu conocimiento para salir del embrollo

Gracias por contestar y por las futuras respuestas
  #8 (permalink)  
Antiguo 21/10/2008, 16:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Se me repite el combo

Hola danteq,

Si ves en tu primer código tienes un combo y el textbox, es por eso que al hacer el request a ese archivo vía AJAX te lo va a duplicar tienes que quitar el primer combo para que no salga.

Saludos.
  #9 (permalink)  
Antiguo 21/10/2008, 16:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Se me repite el combo

mira ese combo q esta en el principio es el combo q me muestra los datos a seleccionar y dependiendo de lo q se seleccione en ese combo da una respuesta asi q no lo puedo quitar
  #10 (permalink)  
Antiguo 07/12/2008, 23:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Se me repitite la pagina cuando selecciono un combo

Hola a todos

Mi problema es el siguiente quiero llenar dos combos uno dependiente de otro tengo una funcion ajax que supuestamente hace eso el problema es que cuando le doy click al combo principal el me repite toda la pagina es decir que el responseText; me esta enviando toda la pagina completa y no se que hacer este es mi codigo por si alguien se apiada de mi y me quiere ayudar muchas gracias y perdonen las molestias



Código HTML:
var peticion = false;  
 var  testPasado = false;  
 try {  
   peticion = new XMLHttpRequest();  
   } catch (trymicrosoft) {  
   try {  
   peticion = new ActiveXObject("Msxml2.XMLHTTP");  
   } catch (othermicrosoft) {  
   try {  
  peticion = new ActiveXObject("Microsoft.XMLHTTP");  
   } catch (failed) {  
   peticion = false;  
   }  
   }  
 } 
 if (!peticion)  
 alert("ERROR AL INICIALIZAR!");  
   
 function cargarCombo (url, comboAnterior, element_id) {  
     //Obtenemos el contenido del div  
     //donde se cargaran los resultados  
     var element =  document.getElementById(element_id);  
     //Obtenemos el valor seleccionado del combo anterior  
     var valordepende = document.getElementById(comboAnterior)  
     var x = valordepende.value  
     //construimos la url definitiva  
     //pasando como parametro el valor seleccionado  
     var fragment_url = url+'?Id='+x;  
     
     element.innerHTML = '<img src="loading.gif" />';  
     //abrimos la url  
     peticion.open("GET", fragment_url);  
     //alert(fragment_url);
     peticion.onreadystatechange = function() {  
         if (peticion.readyState == 4) {  
     //escribimos la respuesta  
             element.innerHTML = peticion.responseText;  
         }  
     }  
    peticion.send(null);  
 }  
  #11 (permalink)  
Antiguo 08/12/2008, 02:56
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Se me repitite la pagina cuando selecciono un combo

¿Y cómo tienes la llamada a esa función? Por ejemplo, si estás llamando a la misma página es lógico que recibirás toda la página. Quizás sea mejor que tengas un script separado en el servidor que te permita obtener la lista de datos según el parámetro. Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 08/12/2008, 10:22
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Se me repitite la pagina cuando selecciono un combo

Muchas gracias david pero como hago eso q me dices, yo llamo la funcionn en el evento onchange del combo y si hago una llamada a la misma pagina y no se me ocurre otra forma si me pudieras ayudar te lo agradeceria mucho
  #13 (permalink)  
Antiguo 08/12/2008, 11:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Se me repitite la pagina cuando selecciono un combo

Temas unidos por favor no dupliques temas.

Por otro lado ya te di la solución solo analizala.

Saludos.
  #14 (permalink)  
Antiguo 08/12/2008, 12:53
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Se me repite el combo

Muchas gracias por responder y perdona que duplique los temas GatorV pero me urge saber como hacer eso soy nuevo con esto de ajax, se que tu intencion es buena y me has contestado de forma rapida pero no entiendo muy bien lo que me dices las soluciones anteriores eran que quitara el combo pero si lo quito como hago para q aparesca con los datos realmente estoy muy confundico si tiene algun ejemplo o algo q pudiera utilizar sn causarte molestias claro esta me seria de mucha ayuda

Perdona los inconvenientes causados los combos los estoy llenando des una clase en php y la base de datos es postgresql por si necesitas esa informacion

Gracias por todo
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 10:43.