Cargar una lista desplegable
Publicado por Jorge Rubiano (1 intervención) el 17/01/2006 14:55:10
Hola amigos del foro, mi pregunta es la siguiente, tengo una lista desplegable que esta cargada con unos valores de una tabla MySql, y lo que deseo es que cuando no exista la opción en la lista, se seleccione otro, para que así se abra un prompt, donde se debe digitar el valor deseado, luego de lo cual este dato digitado debe ser agragado a la lista, ya lo hice con Php, recargando la página, pero no me gusta por que los valores que ya había digitado en otros campos se pierden y el formulario es muy grande, entonces pensé que se podía realizar con jabascript, y una vez aceptado los datos, el nuevo valor sea guardado en la Base de Datos.
A continuación muestro el código de cómo he hecho en el momento:
<select name="area" id="area" onChange="selecciona();">
$consulta = mysql_query("SELECT * FROM area order by area",$link);
while($fila = mysql_fetch_array($consulta))
{
$idarea=$fila["idarea"];$area=$fila["area"];
echo "<option value=\"$idarea\">$area</option>";
}
<option value="otro">Otra Área</option></select>
Ese el código en php, con el cual cargo la lista, y este es javascript con el que lo capturo.
if(area=="otro")
{
nuevo=prompt("Digite el nombre del Área, que desea agregar por favor.\nLa página se actualizará automáticamente","");
if(nuevo!='' && nuevo !=null)
window.location.reload("http://www.rseingenieria.com/sistema_rse/empleados.php?nuevo="+nuevo);
else
if(nuevo != null)
alert("No ha escrito ningún nombre de área");
}
Y en la carga de la página, hago lo siguiente:
if($_GET['nuevo']!='')
{
$nuevo=$_GET['nuevo'];
$consulta = mysql_query("SELECT * FROM area where area LIKE '$nuevo'", $link);
if(mysql_num_rows($consulta)==0)
mysql_query("insert into area (area) values ('$nuevo')", $link);
}
Pero con esto se recarga la página y se pierde el contenido de los campos, gracias de antemano, por la ayuda prestada y espero que me puedan ayudar.
A continuación muestro el código de cómo he hecho en el momento:
<select name="area" id="area" onChange="selecciona();">
$consulta = mysql_query("SELECT * FROM area order by area",$link);
while($fila = mysql_fetch_array($consulta))
{
$idarea=$fila["idarea"];$area=$fila["area"];
echo "<option value=\"$idarea\">$area</option>";
}
<option value="otro">Otra Área</option></select>
Ese el código en php, con el cual cargo la lista, y este es javascript con el que lo capturo.
if(area=="otro")
{
nuevo=prompt("Digite el nombre del Área, que desea agregar por favor.\nLa página se actualizará automáticamente","");
if(nuevo!='' && nuevo !=null)
window.location.reload("http://www.rseingenieria.com/sistema_rse/empleados.php?nuevo="+nuevo);
else
if(nuevo != null)
alert("No ha escrito ningún nombre de área");
}
Y en la carga de la página, hago lo siguiente:
if($_GET['nuevo']!='')
{
$nuevo=$_GET['nuevo'];
$consulta = mysql_query("SELECT * FROM area where area LIKE '$nuevo'", $link);
if(mysql_num_rows($consulta)==0)
mysql_query("insert into area (area) values ('$nuevo')", $link);
}
Pero con esto se recarga la página y se pierde el contenido de los campos, gracias de antemano, por la ayuda prestada y espero que me puedan ayudar.
Valora esta pregunta


0