Problemas con combobox

En una tabla muestro los registros siguientes:
Plato --- Precio --- TipoPlato:
________________________________
¿Flan ---- 3? ------- Postre
¿Rape ---- 30? ------ 2ºPlato
¿Sopa ---- 4? ------- 1er Plato
.
.
.
Tengo un botón para editar el registro. Al darle al botón abro otra ventana en la que me aparece un formulario con 2 cajas de texto para modificar los datos de Plato y Precio, y un combobox para modificar el tipoPlato(1er Plato, 2º Plato, Postre, Bebida).
El formulario me viene rellenado con los datos del registro elegido.
El problema es que no se cómo mostrar el combobox con el dato del registro y a la vez darle opción a cambiarlo, es decir por ejemplo:
Tipo Plato:Postre -> pero que tenga la opción de darle a la flecha del combo y que le aparezca toda la lista: 1er plato, 2º plato...

1 Respuesta

Respuesta
1
En estos casos lo mejor quizás es crear una tabla con los tipos de platos existentes, la cual tendría 2 campos: uno con el código de tipo de plato (p. Ej: número) y el otro con el nombre del tipo. De esta forma cuando quieras cambiar o añadir un tipo de plato sólo tendrás que insertarlo en esa tabla.
En los registros de platos referénciate al tipo con el código y no con el nombre.
Combo:
<?
//conexión mysql
$sql = "SELECT * FROM tipos_plato ORDER BY tipo";
$res = mysql_query($sql);
$num = mysql_num_rows($res);
echo "<select name='tipo_plato'><option value=0></option>";
for($i=0;$i<$num;$i++) {
$cod = mysql_result($res,$i,'id_tipo');
$tipo = mysql_result($res,$i,'tipo');
echo "<option value=$cod>$tipo</option>";
}
?>
</select>
En la página que procesa los datos recibirás la variable $_POST['tipo_plato'] con el código que ya se podrá insertar directamente en el registro.
Tal y como lo has planteado me aparece el combo con todos los datos de TipoPlato es decir:
1erPlato
2ºPlato
...
Genial, pero lo único que me falta es que en vez de aparecer como valor predeterminado el combo vacío, me aparezca el dato que tenía en la tabla antes de darle a editar.
Es decir si tenía
¿Flan ---- 3? ------- Postre [editar]
Cuando le de al botón editar, que me aparezca el form relleno con estos datos:
Plato: Flan
Precio: ¿3?
TipoPlato:Postre (Y aquí la opción del combo que sea Postre, en vez de blanco)
Con los textbox lo he conseguido pero con el combo no.
Gracias.
Sería así:
<?
//obtenemos en la consulta el código de tipo para el plato en cuestión
$CodTipo = 3;
echo "<select name='tipo_plato'>";
for($i=0;$i<$num;$i++) {
$cod = mysql_result($res,$i,'id_tipo');
$tipo = mysql_result($res,$i,'tipo');
$sel = "";
//Miramos si coinciden los códigos
if($cod == $CodTipo) $sel = "selected";
echo "<option ".$sel." value=$cod>$tipo</option>";
}
?>
</select>
Obtenemos para el código de tipo del plato actual:
<option selected value=3>Plato</option>
De modo que se selecciona como opción activa.
Saludos,
iNphYx

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas