Foros del Web » Creando para Internet » HTML »

Valores de combos

Estas en el tema de Valores de combos en el foro de HTML en Foros del Web. Wenas, tengo un problemilla, engo un formulario en el q para cada registro o linea, tengo una columna con un combo y un boton modificar, ...
  #1 (permalink)  
Antiguo 10/04/2009, 14:54
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 1
Valores de combos

Wenas, tengo un problemilla, engo un formulario en el q para cada registro o linea, tengo una columna con un combo y un boton modificar, mi problema es q cuando doy al boton modificar solo me envia a la siguiente pagina el valor del primer combo, si lo hago en el segundo registro por ejemplo no me lo manda, el codigo es este

JS
function Guardar() {

var variable = document.getElementById('declarado');
valor = variable.options[variable.selectedIndex].text;
document.getElementById('campo1').value=valor;

}
/JS

HTML

<select name="declarado" onchange="Guardar();">
<option value="<?php echo $uno;?>" selected><?php echo $uno;?></option>
<option value="<?php echo $dos;?>"><?php echo $dos;?></option>
<option value="<?php echo $tres;?>"><?php echo $tres;?></option>
</select>

<?php
echo "<form name='form2' action ='guardado.php' method='post'>\n";
echo "<input type='hidden' name='campo1' value='Guardar();'> \n";
echo "<td><input type='submit' name='modifico' value='Modificar'/></td>\n";
?>
En la siguiente pagina, imprimo el valor de "campo1" y para el primer registro lo hace bien pero para los demas me muestra "Guardado();", alguien sabe xq?? Gracias!!!
  #2 (permalink)  
Antiguo 11/04/2009, 09:56
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Valores de combos

Alguien me puede ayudar?
  #3 (permalink)  
Antiguo 26/04/2009, 15:57
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Valores de combos

Nadie sabe como puedo solucionarlo?
  #4 (permalink)  
Antiguo 26/04/2009, 19:12
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Valores de combos

Hola, veo que usas PHP, facilisísimo ... el nombre de tu select en lugar de que sea declarado decláralo como declarado[]. Con esto le indicarás al interprete de PHP que enviarás un array de controles. Y a la hora de recuperar los valores tendrás un array.
Código PHP:
$foo $_POST'declarado' ];

//$foo será entonces un array con tantos elementos como renglones existan en tu formulario 
Es eso lo que buscas?

Saludos
  #5 (permalink)  
Antiguo 26/04/2009, 22:51
Avatar de azwebs  
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Valores de combos

Hola, si estas usando un bucle (for) para mostrar todos los registros puedes puedes hacer lo siguiente:

<script type="javascript">
function Guardar(dato)
{
var variable = document.getElementById('declarado'+dato);
valor = variable.options[variable.selectedIndex].text;
document.getElementById('campo1').value=valor;
}

// Yo te recomendaría algo asi mejor
function Guardar2(valor)
{
document.getElementById('campo1').value=valor;
}
</script>

<?
// $numero es la cantidad máxima de registros que vas a mostrar
for($i=0; $i<$numero; $i++)
{
?>
<select name="declarado<?=$i?>" id="declarado<?=$i?>" onchange="Guardar(<?=$i?>)">
<option value="<?php echo $uno;?>" selected><?php echo $uno;?></option>
<option value="<?php echo $dos;?>"><?php echo $dos;?></option>
<option value="<?php echo $tres;?>"><?php echo $tres;?></option>
</select>

// Si usas "Guardar2" sería:
<select name="declarado<?=$i?>" id="declarado<?=$i?>" onchange="Guardar2(this.value)">
<option value="<?php echo $uno;?>" selected><?php echo $uno;?></option>
<option value="<?php echo $dos;?>"><?php echo $dos;?></option>
<option value="<?php echo $tres;?>"><?php echo $tres;?></option>
</select>


El resto de tu código quedaría igual:
<?php
echo "<form name='form2' action ='guardado.php' method='post'>\n";
echo "<input type='hidden' name='campo1' value='Guardar();'> \n";
echo "<td><input type='submit' name='modifico' value='Modificar'/></td>\n";
?>

Por cierto, ahora te sale a veces "Guardar();" porque es el valor "inicial" que le haz puesto al campo oculto que luego imprimes... si le quitas lo que te marqué con rojo no le pones ningun valor inicial a ese campo.

Saludos
AZW
  #6 (permalink)  
Antiguo 30/04/2009, 02:50
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 7 meses
Puntos: 381
Respuesta: Valores de combos

Sería mejor que pusieras sólo el código html que le llega al navegador (con el php ya ejecutado)
__________________
Javascript Códigos - Bambú difunde
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 12:14.