Insertar datos de Listbox a Mysql

En una pagina tengo dos Listbox con el siguiente código....Selecciona las actividades:<br><br>
<script type="text/javascript">
function cambiar(este){
aa=(este==0)?"as":"sa";
bb=(este==0)?"sa":"as";
a=document.forms[0][aa];
b=document.forms[0][bb];
if(a.value==''){return false;}
seVa=a.options[a.selectedIndex];
a[a.selectedIndex]=null;
b.options[b.options.length]=seVa;
}
</script>
</head>
<form>
<select name="sa" size="13">
<?
$sql = "SELECT a.id_actividad, a.actividad ";
$sql .= "FROM actividades as a, ";
$sql .= " acts_pue AS ap, tipos_actividad as tp ";
$sql .= "WHERE ap.id_actividad = a.id_actividad ";
$sql .= " AND tp.id_tipo = a.id_tipo ";
$sql .= " AND a.activo = 1 ";
$sql .= " AND ap.id_puesto = ".$id_puesto;
$sql .= " GROUP BY id_actividad ";
$result = mysql_query($sql);
for( $i = 1; $row = mysql_fetch_array($result); $i++ ) {
echo "<option value =".$row['id_actividad']." />";
echo $row['actividad']."</option> ";
}
?>
</select>
<input type="button"value="Agregar>>" onclick="cambiar(1)">
<td>
<center>Actividad seleccionada:<br><br>
<input type="button"value="<<Quitar" onclick="cambiar(0)">
<select name="as" size="13">
</select>
</center>
</form>
Estos son dos Listbox donde el 1ro están los datos y el otro esta en blanco, pero al dar click al botón este pasa del llena al vacío.
Lo que quiero hacer es que después de seleccionar los datos, eso se inserte en una tabla de mysql.

1 respuesta

Respuesta
-1
No entiendo cuales son los datos que quieres guardar: ¿Sólo la selección de las dos ListBox? Si es así es fácil, al enviar el formulario sólo debes consultar los valores seleccionados en la matriz de respuesta del formulario:
<?php
echo $_REQUEST["as"];
echo $_REQUEST["sa"];
?>
Si así es... el problema es que en esa listbox se pueden seleccionar más de 3 variables... entonces si en mi listbox en un ejemplo hay 3 variables quiero agregar en mi BD que el valor 1 de esa variable se ponga en id_variable1... el valor de la variable 2 se ponga en id_variable2... y así sucesivamente...
Perdona pero no entiendo lo de las 'variables'. Cada listbox puede, en principio, tener un único valor. Así que si tienes la lista 'as' y la lista 'sa' tendrás dos valores seleccionados por el usuario.
¿Puedes explicar mejor esto de las 'variables'?
Si... mira... tengo una listbox que se llama "sa" donde tengo mis variables (var1, var2, var3) cuando selecciono por ejemplo "var1" y le doy click a un botón en mi listbox llamada "sa" el valor "var 1" se quita...
Y en mi listbox llamado "as" se pone "var 1" y supongamos que hago lo mismo en "var 2"... entonces ahora tengo ya dos listbox...
En el listbox llamado "sa" me quedo "var 3" y en el listbox llamado "as" tengo "var 1" y "var 2".
Entonces quiero que a través de una consulta MySQL el valor "var 1" se registre e un campo que se llama id_var1 (en sql) y quiero que "var 2" se registre en un campo llamado id_var2.
Saludos"" y gracias por la paciencia...
Ahora creo que he visto el problema. Parece por lo que he analizado en el script que usas las listbox para 'mover' opciones de una a otra. Y supongo que luego quieres reflejar esos cambios.
Pues vamos mal. Como te digo cada listbox devolverá un sólo valor (y si es que está seleccionado uno).
Quizás podrías probar a añadir el atributo 'multiple' a esa lista
<select name="as"size="13" multiple>
y, en el momento de enviar el formulario, asegurarte mediante Javascript que se seleccionan todas sus opciones.
En ese caso, sí que te devolverá una matriz con los elementos.
okas Gracias por la respuesta... pero mi pregunta original es... como le hago para registrar esos valores a mi tabla SQL
Ya te he contestado a eso:
"Quizás podrías probar a añadir el atributo 'multiple' a esa lista
<select name="as"size="13" multiple>
y, en el momento de enviar el formulario, asegurarte mediante Javascript que se seleccionan todas sus opciones.
En ese caso, sí que te devolverá una matriz con los elementos."
Una vez recibas la matriz con los elementos, debes hacer un bucle sobre ella y ejecutar la sentencia INSERT de SQL correspondiente.
¿Cuál es la parte que no entiendes?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas