Problema con un combobox

Buenas tardes experto estoy teniendo un problema con un combobox, me sucede que cuando doy de alta un paciente, anda excelente el script.
Pero después cuando quiero modificar los datos que cargue en los combobox, quiero que me aparezca el combobox, con el campo que esta guardado en la base de datos por defecto y ADEMAS las otras opciones que tiene el combobox.
Lo que quiero concretamente es que si tengo como profesional a Juan, Roberto y Pepe. Y elijo Roberto al dar de alta.
Después al querer modificar los datos me aparezca Roberto como el que esta cargado, (QUE HASTA AHÍ VOY BIEN PORQUE ME LO MUESTRA) pero lo que NO SE COMO HACER, ES QUE ME MUESTRE TAMBIÉN A JUAN Y A PEPE EN EL COMBOBOX para poder modificarlo.
De esta forma cargo el profesional que atiende al paciente...
---------------------------
<?php 
$consulta1= mysql_query("SELECT nombres,apellidos,cod_prof FROM profesionales where estado=1", $con); 
echo "<select name='doctores'>"; 
    while($row= mysql_fetch_array($consulta1)) { 
          echo "<option value=".($row['cod_prof']).">".$row['apellidos']," ",$row['nombres']."</option>";

echo "</select>"; 
?>
--------------
y con este salvo los datos anteriores en otro script...
---------------
<?php 
$consulta1= mysql_query("SELECT nombres, apellidos, cod_prof FROM profesionales WHERE cod_prof=$profesional ", $con); 
echo "<select name='doctores'>";                                    
while($row= mysql_fetch_array($consulta1)) { 
      echo "<option value=".($row['cod_prof']).">".$row['apellidos']," ",$row['nombres']."</option>";

echo "</select>"; 
?>
----------------
Desde ya muchas gracias!
Respuesta
1
Necesitas volver a cargar el combobox con todos los nombres de médicos e ir comparando con el médico asignado. Si coincide añades un selected="selected" al option.
A grosso modo:
$medicos = nombres_de_médicos();
$medico_actual = medico_que_trata_al_paciente();
foreach ($medicos as $v) {
    if ($v == $medico_actual) {
        echo "<option value=\"$v\" selected="selected">$v</option>\n";
    }
    else {
        echo "<option value=\"$v\">$v</option>\n";
    }
}

3 respuestas más de otros expertos

Respuesta
1
Con gusto
No le puedo poner exactamente el código en php, pero el algoritmo general tendría que ser:
* Cargar los datos del paciente, ahi estaría el código del profecional (pensemos que es la variables $profesional)
* Seguidamente hacer la rutina para colocar a todos los profesionales que sería igual a:
<?php 
$consulta1= mysql_query("SELECT nombres,apellidos,cod_prof FROM profesionales where estado=1", $con); 
echo "<select name='doctores'>"; 
    while($row= mysql_fetch_array($consulta1)) {
        if $row['cod_prof'] == $profesional {
          echo "<option value=" ($row['cod_prof']).">".$row['apellidos']," ",$row['nombres']." selected </option>";}
else {
         echo "<option value=" ($row['cod_prof']).">".$row['apellidos']," ",$row['nombres']."  </option>";}   
}
echo "</select>";
?>
El cambio es el tag de "selected" que pondrá el item como seleccionado dentro del combobox y mostrará los demás.
Éxitos,
Julius (Guatemala)
www.asistedigital.com
Respuesta
1
Tienes que cargar el selector de la misma manera que lo haces al dar de alta, solo agrega al recorrido una validación según la opción que deba estar marcada y cuando eso suceda imprime:
echo " selected>".$row['apellidos']," ",$row['nombres']."";
Si lo notas solo agregamos la propiedad "selected" y esto hará lo que necesitas...
Si tienes dudas o necesitas más claridad estaré pendiente a tus comentarios, saludos y disculpa el tiempo de respuesta pero había estado metido aprendiendo algo de facturación electrónica!
Respuesta
1
La segunda consulta es incorrecta, si te das cuenta lo que estás haciendo es:
SELECT nombres, apellidos, cod_prof FROM profesionales WHERE cod_prof=$profesional
Eso lo único que va a devolver es 1 profesional cuyo cod_prof sea $profesional.
La query debería de ser idéntica a la primera que pones encima.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas