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

problema con xajax

Estas en el tema de problema con xajax en el foro de Frameworks JS en Foros del Web. Tengo la intencion de generar un combo con codigo xajax, sin embargo al generar el combo no envia el valor de ese combo con los ...
  #1 (permalink)  
Antiguo 19/03/2008, 14:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 6
Antigüedad: 16 años, 8 meses
Puntos: 0
problema con xajax

Tengo la intencion de generar un combo con codigo xajax, sin embargo al generar el combo no envia el valor de ese combo con los nuevos resultados, el codigo es el siguiente:
Código PHP:
$sql="select * from itil_vp where estado='A' order by cod_vp";
                echo 
"<select name='vp' class='btn' onChange='xajax_ger(document.form1.vp.options[document.form1.vp.selectedIndex].value)'>";
                echo 
"<option value='0'>&nbsp;</option>";
                foreach (
$dbh->query($sql) AS $row)
                    { 
                    echo 
"<option value='".$row['COD_VP']."'>".$row['DETALLE']."</option>";
                    }
                echo 
"</select></td></tr>"
        
."<tr><td class='P' align='right'>AREA:</td>"
            
."<td>
            <div id='ger'>
                <select name='gere' class='btn' onChange='xajax_cargo(document.form1.gere.options[document.form1.gere.selectedIndex].value)'>
                    <option value='0'>&nbsp;</option>
                </select>
            </div>
            </td></tr>" 
la funcion que llama xjax es :
Código PHP:
function ger($vp)
    {
    include(
'../hosts/itc_mon.host.php');
    try 
    {
    
$dbh = new PDO($db,$u,$p);
    } catch (
PDOException $exception) {
    echo 
"Error de conexion: " $exception->getMessage();
    }
    
$sql="select cod_ger,detalle from itil_gerencia where cod_vp='".$vp."' and estado='A'";
    
$ger="<select name='gere' class='btn' onChange='xajax_cargo(document.form1.gere.options[document.form1.gere.selectedIndex].value)'>
            <option value='0'>&nbsp;</option>"
;
    foreach (
$dbh->query($sql) AS $row)
        { 
$ger .= "<option value='".$row['COD_GER']."'>".$row['DETALLE']."</option>";}
    
$ger.="</select>";
    
$gerencia=new xajaxResponse();
    
$gerencia->assign('ger','innerHTML',$ger);
    
$dbh=NULL;
    return 
$gerencia;
    } 
al enviar el formulario, no envia el nuevo valor de "gere"
SI alguien podria ayudarme o indicarme donde poder conseguir un buen manual de xajax o alternativas a este framework
  #2 (permalink)  
Antiguo 19/03/2008, 15:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: problema con xajax

Trasladado a AJAX.
  #3 (permalink)  
Antiguo 23/03/2008, 22:38
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 20 años
Puntos: 4
Re: problema con xajax

Hola, creo que el problemilla esta aqui...
Código PHP:
$sql="select * from itil_vp where estado='A' order by cod_vp";
                echo 
"<select name='vp' class='btn' onChange='xajax_ger(document.form1.vp.options[document.form1.vp.selectedIndex].value)'>";
                echo 
"<option value='0'>&nbsp;</option>";
                foreach (
$dbh->query($sql) AS $row)
                    { 
                    echo 
"<option value='".$row['COD_VP']."'>".$row['DETALLE']."</option>";
                    }
                echo 
"</select></td></tr>" 
Deberia ser asi:
Código PHP:
$sql="select * from itil_vp where estado='A' order by cod_vp";
$rs=$dbh->query($sql);
                echo 
"<select name='vp' class='btn' onChange='xajax_ger(document.form1.vp.options[document.form1.vp.selectedIndex].value)'>";
                echo 
"<option value='0'>&nbsp;</option>";
                while (
$row=$rs->fetch_assoc())
                    { 
                    echo 
"<option value='".$row['COD_VP']."'>".$row['DETALLE']."</option>";
                    }
                echo 
"</select></td></tr>" 
Espero te funcione, saludos....
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #4 (permalink)  
Antiguo 24/03/2008, 09:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 6
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: problema con xajax

Esto esta claro, en realidad el problema no es con la generacion de los datos, el problema es que cuando se genera el nuevo ID que remplazara, ya no lo muestra como la variable POST, es decir cuando envio el formulario con los TAGs generados, no envia esta variable.
  #5 (permalink)  
Antiguo 27/03/2008, 07:36
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 17 años
Puntos: 14
Re: problema con xajax

Hola.

me parece que usar el atributo "innerHTML" en un select no es la mejor manera agregar nuevas opciones a tu select, yo he hecho esto mismo de una manera distinta, la idea la tome de la pagina oficial de xajax, te pongo el codigo que utilice y espro te sirva:
Código PHP:
function cargaTipo($tipo){
    
    
$objResponse = new xajaxResponse();
    
$obj = new accesoControlador();
    
$aTipos $obj->cargaTipo($tipo);
        
//la funcion cargaTipo me devuelve un array bidimensional con lo que necesito
    //tipo2 es mi select
    
$sScript ="document.getElementById('tipo2').options.length = 0;";
        
    for (
$i=0;$i<count($aTipos);$i++){
    
$sScript  .= "var objOption = new Option('".$aTipos[$i]['descripcion']."', '".$aTipos[$i]["idtipocorrespondencia"]."');";
    
$sScript .= "document.getElementById('tipo2').options.add(objOption);";
}
        
    
$objResponse->addScript($sScript);
    return 
$objResponse;

lo que hago es que borro las opciones del select "tipo2" y luego relleno el select via javascript.

cualquier duda, pregunta
__________________
My path is lit by my own fire, I only go where I desire
  #6 (permalink)  
Antiguo 04/11/2008, 17:14
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 16 años
Puntos: 8
Respuesta: problema con xajax

Para añadir nuevos items a un select lo que yo hago es generar todo el codigo HTML en la función xajax y añadirla como innerHTML a un DIV. Hasta ahora no he tenido problemas.

EJ:

Código PHP:
$valorAAsignar "<select name='selDias' class='textbox' onChange=''>
    <option value='0'>-Día-</option> "
;
  for(
$i 1$i <= $ultimoDiaMes$i++){
    
$valorAAsignar .= "<option value='$i'> $i </option>";
  }
  
$valorAAsignar .= "</select>";
  
$respuesta->addAssign($inputDestino$propiedadInputDestino$valorAAsignar); 
además podrias cambiar algunas cosas que hace que te enredes más po ejemplo:

Código PHP:
$ger="<select name='gere' class='btn' onChange='xajax_cargo(document.form1.gere.options[document.form1.gere.selectedIndex].value)'> 
cambialo por:
Código PHP:
$ger="<select name='gere' class='btn' onChange='xajax_cargo(this.value)'> 
y por favor, nunca olvides colocar una ID a todos tus tags que ocuparás en tu programa.

puedes ver el ejemplo completo en mi blog
Código:
http://prodev.cl/2008/10/como-crear-combo-box-dinamico-con-xajax
ahí hay un ejemplo funcionando que puedes descargar para ver como lo realizo.

Espero te ayude.

eso.

Última edición por eall; 04/11/2008 a las 17:21
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:53.