Foros del Web » Programando para Internet » PHP »

problema con select multiple

Estas en el tema de problema con select multiple en el foro de PHP en Foros del Web. Hola, tengo un pequeño problema con un select multiple tengo un script en javascript que antes que me envie el formulario selecciona todos los campos ...
  #1 (permalink)  
Antiguo 10/10/2006, 12:56
 
Fecha de Ingreso: marzo-2006
Mensajes: 29
Antigüedad: 18 años, 8 meses
Puntos: 0
problema con select multiple

Hola, tengo un pequeño problema con un select multiple
tengo un script en javascript que antes que me envie el formulario selecciona todos los campos de un select multiple, hasta hay no hay problema, el problema esta al momento de recoger los datos del select multiple, solo me imprime el ultimo valor que esta seleccionado y no todos.

este es el select multiple
<select name="campo57" multiple> <? $sqlts="select id_chofer_usuario, id_usuario, c.id_tipo_chofer, t.id_tipo_chofer as id, tipo from chofer_usuario c, tipo_chofer t where c.id_tipo_chofer=t.id_tipo_chofer and id_usuario=$id";
$rsts=mysql_query($sqlts,$conexion);
while($filats=mysql_fetch_array($rsts)){ ?>
<option value="<? echo $filats["id"]; ?>"><? echo $filats["tipo"]; ?></option>
<? } ?>
</select>

y este donde recojo los valores

for ($i=0;$i<count($campo57);$i++)
{
echo "<br> tipo chofer " . $i . ": " . $campo57[$i];
}

eh tratado de ponerme al nombre del select campo57[], pero el javascript deja de funcionar, no se si hay alguna manera de recoger los valores sin que tenga que modificar el javascript.

gracias.
  #2 (permalink)  
Antiguo 10/10/2006, 14:07
 
Fecha de Ingreso: octubre-2004
Mensajes: 128
Antigüedad: 20 años, 1 mes
Puntos: 2
no pones el javascript que estas usando para seleccionar los options

por ejemplo en la pagina del select yo pongo

Código:
<script type="text/javascript">

function recorrer(menu) { 

	var ct = "";

	for(i=0;i<menu.options.length;i++){
		if(!menu.options[i].selected){
			menu.options[i].selected = true;
		}
	             ct += menu.options[i].value + " ";
	}

	document.form1.campos57.value = ct;
	return true;
}

</script>

<form method="post" onsubmit="return recorrer(this.campos)" action="recibe.php"
name="form1">
<select name="campos" multiple size=4>
<option value="opcion1">opcion 1</option>
<option value="opcion2">opcion 2</option>
<option value="opcion3">opcion 3</option>
<option value="opcion4">opcion 4</option>
<option value="opcion5">opcion 5</option>
</select>
<input type="hidden" name="campos57"><input type="submit" name="recibe">
</form>
los valores que le doy al select y los options sustituyelos por los valores de tu base de datos

en recibe.php

Código PHP:
<?

$cadena 
explode(" ",$_POST['campos57']);

for (
$i=0;$i<count($cadena);$i++) { 
    echo 
"<br> tipo chofer " $i ": " $cadena[$i]; 


?>
  #3 (permalink)  
Antiguo 10/10/2006, 15:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En PHP .. si dan nombre al campo en cuestión como [] (array) en el script PHP recibirán un array PHP que recorrer sin más javascript por médio:

Siendo:
Código PHP:
<select name="campos[]" multiple size=4
recibimos

Código PHP:
foreach($_POST['campos'] as $campo){
echo 
$campo."<br>";

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 14:06.