Foros del Web » Programando para Internet » PHP »

Select combinados con php

Estas en el tema de Select combinados con php en el foro de PHP en Foros del Web. Estoy haciendo un formulario en el que se van rellenando opciones y se envía a una base de datos y por ahora y gracias a ...
  #1 (permalink)  
Antiguo 15/09/2010, 04:55
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 13 años, 8 meses
Puntos: 0
Select combinados con php

Estoy haciendo un formulario en el que se van rellenando opciones y se envía a una base de datos y por ahora y gracias a vuestra ayuda lo había conseguido. Ahora quería que provincia y localidad fuesen opciones de un menú desplegable que extrae los datos de otra tabla de la base de datos MySQL.

He mirado por todas partes y al final he copiado un código de Omar Yony Ramos Rojas
Gracias!

http://www.forosdelweb.com/f18/combobox-dinamicos-php-2-mas-combos-anidados-575482/

Mi problema es que tengo que enviar la opción elegida (provincia/isla/localidad en vez de pais/departamento/distrito) para que se almacene junto con los demás datos del formulario, y no lo consigo. Además cada vez que cambia la opción elegida se intenta enviar el formulario (claro, utiliza la función submit) y además se me mezclan unas opciones con otras, no se "limpian" los menús desplegables al cambiar de opciones y resulta un poco confuso.

Me podríais decir cómo hacer para enviar a bd la "localidad" elegida?
Y a que no se envíe el formulario al cambiar de opción? Será que tengo que usar javascript y no php?
Y a dejar el submenú "limpio" al cambiar alguno de los submenús?
Cualquier ayuda me será muy util.

Copio código... (en dos partes)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Ingreso en la Guía Práctica de la Salud</title><link rel="shortcut icon" href="favicong.ico" />

<meta name="description" content="La Guía Práctica de la Salud es la herramienta imprescindible para acceder a toda la información relativa a LA SALUD tanto pública como privada y en todo lo que se refiere a nuestro bienestar." />
<meta name="keywords" content="médicos, farmacéticos, clínicas, Canarias, Las Palmas, Salud, Guía Práctica" />

<link href="salud.css" rel="stylesheet" type="text/css" media="screen" />

</head>

<body bgcolor="#3366cc">
<div >

<img id="fondo" src="imagenes/LowbackDegr.jpg" alt="fondoazul"/>

<table width="800" border="0" align="center" cellpadding="0" cellspacing="0" >
<tr>
<td height="120" colspan="3"><img src="imagenes/cabecera.png" width="800" height="200" alt="guia práctica de la salud"/></td>
</tr>

<tr>

<?php

$pParam = FALSE;

if(count($_GET) != 0){
$pParam = $_GET;
}elseif(count($_POST) != 0){
$pParam = $_POST;
}

if($pParam != FALSE){

$sEspecialidad = $pParam['especialidad'];
$sNombre = $pParam['nombre'];
$sCentro = $pParam['centro'];
$sPreferencia = $pParam['preferencia'];
$sProvincia = $pParam['provincia'];
$sDireccion = $pParam['direccion'];
$sLocalidad = $pParam['localidad'];
$sCodigoPostal = $pParam['codigopostal'];
$sTelefono = $pParam['telefono'];
$sCitaPrevia = $pParam['citaprevia'];
$sHorario = $pParam['horario'];
$sSeguroMedico = $pParam['citaprevia'];
$sObservamed = $pParam['observamed'];
$sContacto = $pParam['contacto'];
$sEmpresa = $pParam['empresa'];
$sCif = $pParam['cif'];
$sDireccadmin = $pParam['direccadmin'];
$sLocalidadmin = $pParam['localidadmin'];
$sCodigopostadmin = $pParam['codigopostadmin'];
$sTelefonadmin = $pParam['telefonadmin'];
$sFax = $pParam['fax'];
$sEmail = $pParam['email'];
$sMovil = $pParam['movil'];
$sComercial = $pParam['comercial'];
$sObservadmin = $pParam['observadmin'];
$sFormapago = $pParam['formapago'];
$sRecibonum = $pParam['recibonum'];
if(
($sEspecialidad == '0') or
($sNombre == '')
){

$sMensaje =
'<p class="aviso">Elige especialidad y no olvides rellenar los campos marcados con *</p>';
echo($sMensaje);

}else{

$sConsulta = "
INSERT INTO completa(
especialidad,
nombre,
centro,
preferencia,
provincia,
direccion,
localidad,
codigopostal,
telefono,
citaprevia,
horario,
seguromedico,
observamed,
contacto,
empresa,
cif,
direccadmin,
localidadmin,
codigopostadmin,
telefonadmin,
fax,
email,
movil,
comercial,
observadmin,
formapago,
recibonum
)VALUES(
'$sEspecialidad',
'$sNombre',
'$sCentro',
'$sPreferencia',
'$sProvincia',
'$sDireccion',
'$resultado',
'$sCodigoPostal',
'$sTelefono',
'$sCitaPrevia',
'$sHorario',
'$sSeguroMedico',
'$sObservamed',
'$sContacto',
'$sEmpresa',
'$sCif',
'$sDireccadmin',
'$sLocalidadmin',
'$sCodigopostadmin',
'$sTelefonadmin',
'$sFax',
'$sEmail',
'$sMovil',
'$sComercial',
'$sObservadmin',
'$sFormapago',
'$sRecibonum'
)
;";

$lasaluddb = new mysqli(
'localhost','Galeo_root','salud2011','GaleonClient e_guia'
);

if($lasaluddb == FALSE){
echo('<p class="aviso">Error en la conexión</p>');
exit();
}
$resultado = $lasaluddb->query(
$sConsulta
);

if($resultado == FALSE){
echo('<p class="aviso">Error en la consulta</p>');
echo($lasaluddb->error);
exit();
}

echo('<p class="aviso">Nueva ficha añadida</p>');

$lasaluddb->close();

}
}

?>

<td width="30" class="ladoi"></td>
<td width="740" bgcolor="#FFFFFF">

<!--aquí empieza el formulario -->
<div>
<table width="740" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="207" height="35" class="navegar">&nbsp;<input name="Busca" type="text" size="15"/> &nbsp;<input type="button" name="Buscar" id="Buscar" value="Buscar" /></td>
<td width="35" height="35"><a href="index.html" title="ir al inicio" class="home"><img src="imagenes/Home.jpg" alt="ir a inicio" width="35" height="35" class="home" /></a></td>
<td width="166" height="35" class="navegar"><a href="listadosecun.php" title="Busque un especialista en su zona">Búsqueda avanzada</a></td>
<td width="166" height="35" class="actual"><a href="" title="Área de acceso para nuestros comerciales">Acceso Comerciales</a></td>
<td width="166" height="35" class="navegar"><a href="" title="Introduzca sus datos para formar parte de nuestra Guía Práctica de la Salud">Alta Clientes</a></td>
</tr>
</table>
</div>
<div class="treb">
<p></p>
<form name="frm_completa" method="post" action="">
<fieldset style="padding:5px">
  #2 (permalink)  
Antiguo 15/09/2010, 04:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Select combinados con php

continúa...


<legend class="fieldset">Datos a publicar</legend>
<table width="620" border="0" cellspacing="2" cellpadding="0">
<tr><td width="230" align="right" valign="middle"><label>ESPECIALIDAD/Servicio&nbsp;
</label></td><td><select name="especialidad" id="especialidad">
<option value="0" selected="selected"> </option>
<option value="1">Acupuntura</option>
<option value="2">Adicciones/Tratamiento</option>
<option value="3">ALERGOLOG&Iacute;A</option>
<option value="4">Ambulancias</option>
<option value="5">Análisis clínicos</option>
<option value="6">ANESTESIOLOG&Iacute;A</option>
<option value="7">APARATO DIGESTIVO</option>
<option value="8">Asistencia a domicilio</option>
<option value="9">Asociaciones</option>
<option value="10">CARDIOLOG&Iacute;A</option>
<option value="11">Centro Auditivo</option>
<option value="12">Centro de belleza</option>
<option value="13">Centro de día</option>
<option value="14">Centro de dietética</option>
<option value="15">Centro de pilates</option>
<option value="16">Centro de yoga</option>
<option value="17">Certificados médicos</option>
<option value="18">CIRUG&Iacute;A GENERAL</option>
<option value="19">CIRUG&Iacute;A MAXILOFACIAL</option>
<option value="20">CIRUG&Iacute;A ORTOP&Eacute;DICA</option>
<option value="21">CIRUG&Iacute;A PEDI&Aacute;TRICA</option>
<option value="22">CIRUG&Iacute;A PROCTOL&Oacute;GICA</option>
<option value="23">CIRUG&Iacute;A PL&Aacute;STICA Y REPARADORA</option>
<option value="24">CIRUG&Iacute;A VASCULAR</option>
<option value="25">Clínicas del dolor</option>
<option value="26">DERMATOLOG&Iacute;A</option>
<option value="27">DIGESTIVO</option>
<option value="28">ENDOCRINOLOG&Iacute;A/Nutrición</option>
<option value="29">Enfermería</option>
<option value="30">ESTOMATOLOG&Iacute;A</option>
<option value="31">Farmacia</option>
<option value="32">Fisioterapia</option>
<option value="33">GASTROENTEROLOG&Iacute;A</option>
<option value="34">GERIATR&Iacute;A</option>
<option value="35">Gimnasio</option>
<option value="36">GINECOLOG&Iacute;A</option>
<option value="37">HEMATOLOG&Iacute;A</option>
<option value="38">Herbolario</option>
<option value="39">Homeopatía</option>
<option value="40">INMUNOLOG&Iacute;A CL&Iacute;NICA</option>
<option value="41">Logopedia</option>
<option value="42">Masajista</option>
<option value="43">MEDICINA DEPORTIVA</option>
<option value="44">Medicina General</option>
<option value="45">MEDICINA INTERNA</option>
<option value="46">MEDICINA NATURISTA</option>
<option value="47">MICROBIOLOG&Iacute;A</option>
<option value="48">NEFROLOG&Iacute;A</option>
<option value="49">NEUMOLOG&Iacute;A</option>
<option value="50">NEUROCIRUG&Iacute;A</option>
<option value="51">NEUROLOG&Iacute;A</option>
<option value="52">OBSTETRICIA</option>
<option value="53">ODONTOLOG&Iacute;A</option>
<option value="54">OFTALMOLOG&Iacute;A</option>
<option value="55">&Oacute;ptica</option>
<option value="56">Ortopedia</option>
<option value="57">OSTEOPAT&Iacute;A</option>
<option value="58">OTORRINOLARINGOLOG&Iacute;A</option>
<option value="59">Parafarmacia</option>
<option value="60">Pedagogía</option>
<option value="61">Pediatría</option>
<option value="62">Peluquería</option>
<option value="63">Podología</option>
<option value="64">Practicante</option>
<option value="65">Preparación al parto</option>
<option value="66">Psicología</option>
<option value="67">PSIQUIATR&Iacute;A</option>
<option value="68">RADIOLOG&Iacute;A</option>
<option value="69">REHABILITACI&Oacute;N</option>
<option value="70">Residencias</option>
<option value="71">REUMATOLOG&Iacute;A</option>
<option value="72">Sexología</option>
<option value="73">Spa</option>
<option value="74">TOCOGINECOLOG&Iacute;A</option>
<option value="75">TRAUMATOLOG&Iacute;A</option>
<option value="76">UROLOG&Iacute;A</option>
<option value="77">Otros</option>
</select></td></tr>

<tr><td width="230" align="right" valign="middle"><label>Nombre&nbsp;</label></td><td><input name="nombre" type="text" size="60"/>
</td></tr>

<tr><td width="230" align="right" valign="middle"><label>Centro&nbsp;</label></td><td><input name="centro" type="text" size="60"/></td></tr>


<tr><td width="230" align="right" valign="middle"><label>Preferencia identidad&nbsp;</label></td><td>

<input type="radio" name="preferencia" value="1" id="preferencia_0" checked="checked"/>
Nombre
<input type="radio" name="preferencia" value="2" id="preferencia_1" />
Centro</td></tr>

<tr><td width="230" align="right" valign="middle"><label>Provincia&nbsp;</label></td><td>

<select name="provincia">
<option value="0" selected="selected"> </option>
<option value="Las Palmas">Las Palmas</option>
<option value="Santa Cruz de Tenerife">Santa Cruz de Tenerife</option>
</select>

</td></tr>
<tr><td width="230" align="right" valign="middle"><label>Dirección&nbsp;</label></td><td><input name="direccion" type="text" size="60"/> </td></tr>
<tr><td width="230" align="right" valign="middle"><label>Provincia&nbsp;<br/>Isla&nbsp;<br/>Localidad&nbsp;</label></td><td>

<?php include("Mysql.php");

$db = new MySQL();
$consulta_pais = $db->consulta("SELECT * FROM pais");
echo '<html>';
echo '<form method="post" action="">';

$pais=$_POST['pais'];
$departamentos=$_POST['departamentos'];
$distrito=$_POST['distrito'];

echo '<select name="pais" onChange="submit()" >';
if ($db->num_rows($consulta_pais)>0){
echo "<option value= '$pais'>".$pais.'</option>';
while ($resultado=$db->fetch_array($consulta_pais)){ echo '<option value= "'.$resultado['pais'].'">'.$resultado['pais'].'</option>';
}
}
echo '</select>';
echo '<br>';

$consulta_cod_pais = $db->consulta("SELECT idp FROM pais WHERE pais='$pais'");
$resultado_cod_pais=$db->fetch_array($consulta_cod_pais);
$cod_pais=$resultado_cod_pais['idp'];
$consulta_departamento = $db->consulta("SELECT * FROM dep where pais_idp='$cod_pais'");


echo '<select name="departamentos" onChange="submit()">';
if ($db->num_rows($consulta_departamento)>0){
echo "<option value= '$departamentos'>".$departamentos.'</option>';
while ($resultado=$db->fetch_array($consulta_departamento)){ echo '<option value= "'.$resultado['departamento'].'">'.$resultado['departamento'].'</option>';
}
}
echo '</select>';
echo '<br>';

$consulta_cod_departamento = $db->consulta("SELECT iddep FROM dep WHERE departamento='$departamentos'");
$resultado_cod_departamento=$db->fetch_array($consulta_cod_departamento);
$cod_departamento=$resultado_cod_departamento['iddep'];
$consulta_distrito = $db->consulta("SELECT * FROM distrito where dep_iddep='$cod_departamento'");


echo '<select name="distrito" onChange="submit()">';
if ($db->num_rows($consulta_distrito)>0){
echo "<option value= '$distrito'>".$distrito.'</option>';
while ($resultado=$db->fetch_array($consulta_distrito)){ echo '<option value= "'.$resultado['distrito'].'">'.$resultado['distrito'].'</option>';
}
}
echo '</select>';
echo '</html>';
echo '</form>';
?>



</td></tr>
<tr><td width="230" align="right" valign="middle"><label>Código Postal&nbsp;</label></td><td><input name="codigopostal" type="text" maxlength="5" size="12"/> </td></tr>
  #3 (permalink)  
Antiguo 15/09/2010, 04:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Select combinados con php

y acaba...


<tr><td width="230" align="right" valign="middle"><label>Teléfono&nbsp;</label></td><td><input name="telefono" type="text" /> </td></tr>
<tr><td width="230" align="right" valign="middle"><label>Cita previa&nbsp;</label></td><td><input type="radio" name="citaprevia" value="si" id="citaprevia_0" checked="checked"/>
Sí&nbsp;&nbsp;
<input type="radio" name="citaprevia" value="no" id="citaprevia_1" />
No </td></tr>
<tr><td width="230" align="right" valign="middle"><label>Horario&nbsp;</label></td><td><input name="horario" type="text" size="60"/></td></tr>
<tr><td width="230" align="right" valign="middle"><label>Seguro médico&nbsp;</label></td><td><input name="seguromedico" type="text" size="60"/> </td></tr>
<tr><td width="230" align="right" valign="top"><label><strong>Observaciones&nbsp;<br/>médicas&nbsp;</strong></label></td><td>
<textarea name="observamed" cols="45" rows="4"></textarea> </td></tr>
</table>
</fieldset>
<br/>
<fieldset style="padding:10px;">
<legend class="fieldset">Otros datos</legend>

<table width="620" border="0" cellspacing="2" cellpadding="0">
<tr><td width="230" align="right" valign="middle"><label>Contacto&nbsp;</label></td><td><input name="contacto" type="text" size="60"/></td></tr>

<tr><td width="230" align="right" valign="middle"><label>Empresa&nbsp;</label></td><td><input name="empresa" type="text" size="60"/></td></tr>
<tr><td width="230" align="right" valign="middle"><label>CIF&nbsp;</label></td><td><input name="cif" type="text" /></td></tr>
<tr><td width="230" align="right" valign="middle"><label>Dirección&nbsp;</label></td><td><input name="direccadmin" type="text" size="60"/></td></tr>
<tr><td width="230" align="right" valign="middle"><label>Localidad&nbsp;</label></td><td><input name="localidadmin" type="text" size="60"/></td></tr>
<tr><td width="230" align="right" valign="middle"><label>Código Postal&nbsp;</label></td><td><input name="codigopostadmin" type="text" maxlength="5" size="12"/></td></tr>
<tr><td width="230" align="right" valign="middle"><label>Teléfono&nbsp;</label></td><td><input name="telefonadmin" type="text" /></td></tr>
<tr><td width="230" align="right" valign="middle"><label>Fax&nbsp;</label></td><td><input name="fax" type="text" /></td></tr>
<tr><td width="230" align="right" valign="middle"><label>E-mail&nbsp;</label></td><td><input name="email" type="text" /></td></tr>
<tr><td width="230" align="right" valign="middle"><label>Móvil&nbsp;</label></td><td><input name="movil" type="text" /></td></tr>
<tr><td width="230" align="right" valign="middle"><label>Comercial&nbsp;</label></td><td>
<select name="comercial">
<option value="0" selected="selected"> </option>
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
</select></td></tr> <tr><td width="230" align="right" valign="top"><label><strong>Observaciones&nbsp;<br/>administrativas&nbsp;</strong><br/>
</label></td><td>
<textarea name="observadmin" cols="45" rows="4"></textarea></td></tr>

<tr><td align="right" valign="middle"><label>Forma de Pago&nbsp;</label></td><td>
<select name="formapago">
<option value="0" selected="selected"> </option>
<option value="Talonario">Talonario</option>
<option value="Transferencia">Transferencia</option>
<option value="TPV virtual">TPV virtual</option>
<option value="Efectivo">Efectivo</option>
<option value="Otros">Otros</option>
<option value="No Pagado">No Pagado</option>
</select></td></tr>
<tr>
<td align="right" valign="middle"><label>Número de recibo&nbsp;</label></td><td><input name="recibonum" type="text" /></td></tr>


</table>
</fieldset>

<p style="text-align:center"><input name="envio" type="submit" value="Enviar datos"/></p>
</form>

</div><!-- y aquí termina el formulario -->
</td>
<td width="30" class="ladod">&nbsp;</td>
</tr>
<tr>
<td class="bottom" colspan="3">
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr valign="middle">
<td id="firma" width="460" height="0">© Revista Canaria de la Salud, 2010 | Política de privacidad<br/>&nbsp;&nbsp;&nbsp;<a id="webmaster" href="mailto:[email protected]">w [email protected]</a></td>
<td width="40" height="0"><a id="uno" href="http://validator.w3.org/check?uri=referer">
<img src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional"
border="0" height="22" width="65" align="right"/></a>
</td>
<td width="40" height="0" ><a id="dos" href="http://jigsaw.w3.org/css-validator/check/referer">
<img src="http://www.w3.org/Icons/valid-css2-blue" alt="Valid CSS"
border="0" height="22" width="65" align="right"/></a>
</td>
<td width="40" height="0" ><a id="tres" href="http://www.w3.org/WAI/WCAG1AA-Conformance"
title="Explicación del Nivel Doble-A de
Conformidad">
<img src="http://www.w3.org/WAI/wcag1AA-blue"
alt="Icono de conformidad con el Nivel Doble-A,
de las Directrices de Accesibilidad para el
Contenido Web 1.0 del W3C-WAI" border="0" height="22" width="62" align="right"/></a>
</td>

</tr>
</table></td>
</tr>
</table>
</div>
</body>
</html>
  #4 (permalink)  
Antiguo 20/09/2010, 13:39
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Select combinados con php

Solucionado!

Etiquetas: combinados, select
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 14:53.