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

Cambiar datos de un SELECT al checkear RADIO BTN

Estas en el tema de Cambiar datos de un SELECT al checkear RADIO BTN en el foro de Frameworks JS en Foros del Web. Hola soy nuevo y necesito que al chequear un radio button, de cuatro, llene un select con datos de una DB. Estoy probando con un ...
  #1 (permalink)  
Antiguo 21/08/2009, 10:11
Avatar de Jota_bg  
Fecha de Ingreso: agosto-2009
Mensajes: 6
Antigüedad: 14 años, 8 meses
Puntos: 0
Exclamación Cambiar datos de un SELECT al checkear RADIO BTN

Hola soy nuevo y necesito que al chequear un radio button, de cuatro, llene un select con datos de una DB.
Estoy probando con un código que usé y funciona, cuando selecciono una opción de un select, actualiza los datos de otro. El asunto es que no funciona cuando trato de adaptarlo a los radio buttons.
Dejo los trozos de código implicados para ver si álguien de un respiro...

Código HTML:
<div id="cajacuerpo" align="center">
<h2 class="titulos">Asientos </h2>

<form method="get" action="">
<input type="radio" name="radiobtn" value="1" onchange="adjs('?p&sel='+this.value)" />Activos
<input type="radio" name="radiobtn" value="2" onchange="adjs('?p&sel='+this.value)" />Pasivos
<input type="radio" name="radiobtn" value="3" onchange="adjs('?p&sel='+this.value)" />Ingresos
<input type="radio" name="radiobtn" value="4" onchange="adjs('?p&sel='+this.value)" />Egresos

<div id="selcta"><select id="ctas" name="ctas"><? echo ctas(); ?></select></div>
<div id="btncta">
<h2 class="negritas"> ingresar cdigo de la cuenta</h2>
<input type="text" name="cod_cuenta" maxlength="12" />
<input type="submit" name="btncta" value="Agregar" />
</div> <!-- DIV boton cuenta -->
</form>
<div id="asiento">donde se imprimiran las cuentas</div>

<div id="glosas">
<div class="nombres">Glosa Explicativa</div>
<textarea name="glosaing"></textarea>
</div> <!-- fin DIV GLOSAS -->

</div> <!-- fin DIV cajacuerpo --> 
Código HTML:
<script>
function adjs(url){
	oldsc = document.getElementById("old_sc");
	if (oldsc)
		document.getElementByTagName('body')[0].removeChild(oldsc);
	sc = document.CreateElement('script');
	sc.id="old_sc";
	sc.src = url+'&'+Math.random();
	document.getElementByTagName('body')[0].appendChild(sc);
}
</script> 

Código PHP:
<? 

if (isset($_GET['p'])){
    echo 
'esta es una prueba... y tampoco se imprime...  >:( ';
    if (
$_GET['sel'] != ""){
        
$sel $_GET['sel'];
        echo 
'document.getElementById("selcta").innerHTML="'.ctasxtipo($sel).'";';
        exit;
    }
    
    echo 
'document.getElementById("selcta").innerHTML="<select id=\"ctas\" name=\"ctas\"><? echo ctas(); ?></select>";';
}
?>
La página se muestra y el select se llena con "todos" los datos de la BD. Necesito que al presionar un radio button, se muestren datos mas específicos.

gracias!

Última edición por Jota_bg; 21/08/2009 a las 16:09
  #2 (permalink)  
Antiguo 21/08/2009, 13:31
Avatar de Jota_bg  
Fecha de Ingreso: agosto-2009
Mensajes: 6
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Cambiar datos de un SELECT al checkear RADIO BTN

... creo que mi problema esta en la funcion ctasxtipo(); en el substring....

Código PHP:
function ctasxtipo($a){
    
$link=conectasql();
    
$str_sql="select * from cuentas" ;
    
$rsResponse=mysql_query($str_sql,$link) or die("No conectado.. ".mysql_error());
    
$row=mysql_fetch_array($rsResponse);
    
    do{
        if (
$a == substr($row['cod_cta'],0,1)) {
            
$paso="";
            
$paso trim($row['cod_cta']);
            if (
strlen($paso) == 11) {
                echo 
'<option value="'.$row['cod_cta'].'">( '.$paso.' )'.$row['descripcion'].'</option>';    }
        }
        
    } While (
$row=mysql_fetch_array($rsResponse));
    
// echo '<div class="descripcion">'.$row['descripcion'].''
    
mysql_free_result($rsResponse);
    
mysql_close($link);

sigo probando....

Ya resolví el tema del substring, ahora estoy seguro que ingresa a la función. Pero no imprime el

echo 'document.getElementById("selcta").innerHTML="'.$h tml.'";';

sigo con eso...

Última edición por Jota_bg; 21/08/2009 a las 14:25
  #3 (permalink)  
Antiguo 24/08/2009, 09:32
Avatar de Jota_bg  
Fecha de Ingreso: agosto-2009
Mensajes: 6
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Cambiar datos de un SELECT al checkear RADIO BTN

Luego de un fin de semana reparador.... eran solo errores de sintaxis.... Si le interesa a alguien les dejo la base para insertar en cualquier pagina.

Código HTML:
<?

if (isset($_GET['c'])){
	if ($_GET['sel'] != ""){
		$sel = 	$_GET['sel'];
		// sel es el NUMERO DE LA REGION, NO EL NOMBRE
		$html = ctasxtipo($sel);
		
		echo 'document.getElementById("cambia").innerHTML="'.$html.'";';
		exit;
	}
	echo 'document.getElementById("cambia").innerHTML="<select name=\"dctas\" id=\"dctas\"></select>";';
}

?>

<head>

<script>
function adjs(url){
    oldsc=document.getElementById("old_sc");
       if(oldsc)
            document.getElementsByTagName('body')[0].removeChild(oldsc);
    sc=document.createElement('script');
    sc.id="old_sc";
    sc.src=url+'&'+Math.random();
    document.getElementsByTagName('body')[0].appendChild(sc);
}
</script>
</head>
<body>
<select name="cuentas" id="cuentas" onchange="adjs('?c&sel='+this.value)">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select> <div id="cambia"><select name="dctas" id="dctas"></select></div>
</body>
</html> 
Donde "ctasxtipo" es una funcion que lee desde un BD y llena los options del select.

en el código anterior me faltaba el "\" antes de las comillas... pff. ojo con eso.

El código es súper útil, lo saqué hace tiempo desde aquí pero no recuerdo quien lo escribió. De todas maneras no es complicado de analizar.

suerte

Última edición por Jota_bg; 24/08/2009 a las 09:34 Razón: Sr. Moderador, cierre el tema plis!?.. que yo soy pollo y no cacho mucho de esto ademas no se si puedo.
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 07:30.