PHP - En una Form como puedo.....

   
Vista:

En una Form como puedo.....

Publicado por Rosy (64 intervenciones) el 21/07/2008 19:28:19
Hola tengo una form, en la que pido 3 datos de entrada. El primero es el mes, el segundo es la especialidad medica que se otorgaron en ese mes y el tercero son las acciones asociada a la especialidad seleccionada.

Bueno, tengo una Form y tres Select; Uno para el mes, otro para la especialidad, y otro para las acciones. El tema es que el segundo y tercer select son dinamicos y no se como puedo pasarle el valor del mes para que restringa la busqueda de la especialida si estoy en la misma form.

Se que es deficil darme a entender. Ojalá alguien me pueda ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:En una Form como puedo.....

Publicado por Juan (1 intervención) el 21/07/2008 19:50:27
Si la informacion viene de la DB puede utilizar ajax, mas sien embargo si la info de los selects es estatica puede generar dos Arrays en js y al momento de q' uno cambie con el evento onchange traer la info del array correspondiente.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ajax...que es eso???

Publicado por Rosy (64 intervenciones) el 21/07/2008 21:31:12
Hola, gracias por la respuesta, la informacion viene de una base de datos, de manera que tendré que utilizar ajax. Primero voy a investigar que es eso!! porque no tengo ninguna idea. Me podrias enviar algun ejemplo mas o menos simple??

Gracias de todas formas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ajax...que es eso???

Publicado por Juan (30 intervenciones) el 21/07/2008 22:17:42
Ajax es una metodologia de programacion, si te gusta programar, ajax te va a impresionar bastante es muy bacano.
Un buen link con ejemplos:
http://www.elrincondeajax.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ajax...que es eso???

Publicado por Juan (30 intervenciones) el 21/07/2008 22:30:10
Andando por la web, me econtre con esto practicamente es lo q' necesitas:
http://www.formatoweb.com.ar/ajax/select_dependientes_3_niveles.php
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:En una Form como puedo.....

Publicado por Pineapple (183 intervenciones) el 22/07/2008 00:31:37
Hola Rosy, haber como dice Juan sería muy bueno con Ajax pero creo que es una herramienta un poquito avanzada para ti, que creo que vas comenzando, creo que una opcion un poco menos complicada sería que al seleccionar el mes hagas un submit a tu form, vas buscas a l base de datos, y lo recoges con un post o un get, y te traiga tu especialidad y las acciones.

Claro es lo mismo que te dice Juan pero esto es sin utilizar ajax, se ve un pokito mas feo, pero es mas fácil, de cualquier manera andamos por aquí, suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:En una Form como puedo.....

Publicado por Diego Romero (1450 intervenciones) el 22/07/2008 03:16:20
Rosy:
Quizá te gustaría leer eso:
http://www.driverop.com.ar/depselect.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias

Publicado por Rosy (64 intervenciones) el 22/07/2008 15:42:30
Gracias amigos por toda la ayuda prestada, voy a revisar todas las posibilidades que ustedes me sugieren. He estado mirando por aqui y por alla y lo que ando buscando aparece en internet como "Listas Dependientes".

Igual mil gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:para Diego Romero

Publicado por Rosy (64 intervenciones) el 22/07/2008 19:19:09
Diego, lei la pagina que me sugeriste, y es justamente lo que andaba buscando, por lo que estoy muy agradecida. A pedar de ello, algunas cosas no me resultan y te estaria eternamente agradecida si me pudieras ayudar a sacar adenlante esta pagina, que me imagino que para una persona con experticia no debiera ser muy dificil, sin embargo, para mi resulta una tarea sumamente dificil de implementar.

Lo unico que me resulta bien, es el re llamar la pagina con el evento
onChange="javascript:Seleccionar();"

cuando se cargar por segunda vez la pagina con los famosos echo, muestro las variables para ver que efectivamente tienen los valores, y sí tienen los valores. todo bien hasta ahi. Pero si hago alguna operacion con ellas, el sql, por ejemplo para llenar el tercer select o para usar la clausula Selected, no me funciona, no sé, es como si la variable no estuviera vacia, aunque no es asi porque la muestro y tiene valor, la verdad es que he puesto el codigo de cabeza buscando el problema, he estado todo el día y no se que pasa, necesito ayuda urgente por favor.

aqui va todo el codigo por si le puedes echar un vistazo o bien si me puedes escribir a mi correo rosygahi@yahoo.es

<html>
<head>
<link rel="STYLESHEET" type="text/css" href="estadistica.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><style type="text/css">
<!--
body {
background-image: url(img/bg92.gif);
}
-->
</style>
<h1 class="pag_tit">Boletin</h1>

</head>

<script language="JavaScript" type="text/JavaScript">
function Seleccionar() {
var a = document.f1.especiali.value;
if (a != "null") {
document.f1.action="";
document.f1.submit(); }
else { alert("Seleccione un valor."); }
}
</script>

<?
$sel1 = ""; // esta variable debe estar definida

if(isset($_POST['mes']))

$sel1 = $_POST['mes'];

switch($mes)
{
case "1":
echo "Enero";
break;
case "2":
echo "Febrero";
break;

case "3":
echo "Marzo";
break;
case "4":
echo "Abril";
break;
}

if(isset($_POST['especiali']))
{
echo "<br>Especialidad = $especiali";
$filtro = $_POST['especiali'];
}

if(!(isset($_POST['envio'])))
{
?>
<form name="f1" action="boletin.php" method="POST">
<table border="1" width="600" align="center">
<tr>
<td width="150">Mes de Consulta: </td>
<td width="150"><select name="mes">
<option value="1" <? if($sel1.='1') echo " selected "; ?>>Enero</option>
<option value="2" <? if($sel1.='2') echo " selected "; ?>>Febrero</option>
<option value="3" <? if($sel1.='3') echo " selected "; ?>>Marzo</option>
<option value="4" <? if($sel1.='4') echo " selected "; ?>>Abril</option>
<option value="5" <? if($sel1.='5') echo " selected "; ?>>Mayo</option>
<option value="6" <? if($sel1.='6') echo " selected "; ?>>Junio</option>
<option value="7" <? if($sel1.='7') echo " selected "; ?>>Julio</option>
<option value="8" <? if($sel1.='8') echo " selected "; ?>>Agosto</option>
<option value="9" <? if($sel1.='9') echo " selected "; ?>>Septiembre</option>
<option value="10" <? if($sel1.='10') echo " selected "; ?>>Octubre</option>
<option value="11" <? if($sel1.='11') echo " selected "; ?>>Noviembre</option>
<option value="12" <? if($sel1.='12') echo " selected "; ?>>Diciembre</option>
</select>
</td>
</tr>
<td width="150">Especialidad: </td>
<td width="500"><select name="especiali" id="especiali" onChange="javascript:Seleccionar();">
<option selected value="0">Selecciona una opcion</option>
<?
include("conectar.php");
$sql = "SELECT Servicio from boletin group by servicio";
$result = mysql_query($sql, $conexion);
while ($myrow = mysql_fetch_array($result))
{
echo "<option value='$myrow[0]'>$myrow[0]</option>";
}
?>
</select></td>
</tr>
<td width="150">Sub Especialidad: </td>
<td width="500"><select name="sub_espe">
<option selected value="0">Selecciona una opcion</option>
<?
include("conectar.php");
$sql = "SELECT Especialidad from boletin where servicio = $filtro. group by especialidad";
$result = mysql_query($sql, $conexion);
while ($myrow = mysql_fetch_array($result))
{
echo "<option value='$myrow[0]'>$myrow[0]</option>";
}
?>
</select></td>
</tr>
<tr>
<td width="300"> <? echo "la especialidad es = $filtro";?></td>
<TR>
<td width="100"></td>
<td width="300"><input type="submit" name="envio" value="Consultar" /></td>
</TR>
</table>
</form>

<?
}
else
{
$especiali = $_POST['especiali'];
$mes = $_POST['mes'];
include("conectar.php");
$sql = "SELECT * from boletin where mes = $mes";
$result = mysql_query($sql, $conexion);

echo "Espepcialidad : " . $especiali;
echo "<table border='1' width='800' align='center'>";
echo "<tr><td width='60' class='tb_tit'>Total</td>";
echo "<td width='500' class='tb_tit'>Nuevos</td>";
echo "<td width='60' class='tb_tit'>Control</td></tr>";

while($myrow = mysql_fetch_array($result))
{
echo "<tr> ";
echo "<td width='60' class='tb_dat2' >$myrow[tot]</td>";
echo "<td width='500' class='tb_dat2'>$myrow[nuevo]</td>";
echo "<td width='60' class='tb_dat2'>$myrow[control]</td></tr>";
}

echo "</table>";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para Diego Romero

Publicado por Rosy (64 intervenciones) el 22/07/2008 21:06:50
Hola Diego, he tenido avances, ahora me resulta completamente lo de las lista dependientes, lo unico que no me funciona es el tema de la clausula Selected, es decir cuando la pagina se vuelve a cargar me aparece siempre el primer elemento de la lista, aun cuando las variables tienes los valores correspondientes y agregue el código que tu indicaste.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para Diego Romero

Publicado por Pineapple (183 intervenciones) el 22/07/2008 21:19:08
Perdón por meterme, pero bueno si no quieres mi ayuda no la tomas en cuenta...

Si te fijas cuando carga la pagina se pasana por el navegador las variables, atravez de post o get, entonces tienes que poner tu select con el valor que ya tenia antes, mira te paso una pagina de ejemplo, di qu eno entiendes y te ayudamos..

http://www.forosdelweb.com/f18/refrescar-formulario-sin-perder-valores-select-408837/

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para Pineapple

Publicado por Rosy (64 intervenciones) el 22/07/2008 21:22:34
Gracias, gracias, gracias, tda ayuda me sirve ..........voy a ir a ver la pagina que me dices......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para Pineapple

Publicado por Rosy (64 intervenciones) el 22/07/2008 21:38:00
Cuando recargo la pagina, la variaoble $mes viene con un valor, por lo menos asi pareciera porque cuando lo muestro con un echo me muestra el valor que seleccione, sin embargo, el codigo php que incluyo para que quede seleccionado con la clausula "selected" no me funciona, siempre queda en "Diciembre"

<td width="150"><select name="mes">
<option value="1" <? if($mes.='1') echo " selected "; ?>>Enero</option>
<option value="2" <? if($mes.='2') echo " selected "; ?>>Febrero</option>
<option value="3" <? if($mes.='3') echo " selected "; ?>>Marzo</option>
<option value="4" <? if($mes.='4') echo " selected "; ?>>Abril</option>
<option value="5" <? if($mes.='5') echo " selected "; ?>>Mayo</option>
<option value="6" <? if($mes.='6') echo " selected "; ?>>Junio</option>
<option value="7" <? if($mes.='7') echo " selected "; ?>>Julio</option>
<option value="8" <? if($mes.='8') echo " selected "; ?>>Agosto</option>
<option value="9" <? if($mes.='9') echo " selected "; ?>>Septiembre</option>
<option value="10" <? if($mes.='10') echo " selected "; ?>>Octubre</option>
<option value="11" <? if($mes.='11') echo " selected "; ?>>Noviembre</option>
<option value="12" <? if($mes.='12') echo " selected "; ?>>Diciembre</option>
</select>
</td>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para Pineapple

Publicado por Jose (2 intervenciones) el 22/07/2008 22:52:47
El condicional es asi: if($mes=='1')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ERA ESO!!! Mil Gracias

Publicado por Rosy (64 intervenciones) el 22/07/2008 23:20:31
Gracias Jose, era tan simple como eso, lo que no es tener la experticia, pero bueno asi es la vida del programador. Estuve dos dias con el tremedo lio, pero bueno al final se ven los frutos.......estoy muyyyyyy contenta. Mil gracias a todos por tener siempre la voluntad de responder.

Me van a ver seguido porque estoy recien empezando el proyecto... asi que tenganme paciencia

Mil gracias a todos
Rosy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Para Pineapple

Publicado por Diego Romero (1450 intervenciones) el 23/07/2008 05:35:24
Yep, eso mismo ví yo en el código.

Lo que me recuerda una anécdota que me pasó. Que mi cliente me llama que no le andaba algo en la página y después de horas de tener el código frente a mis ojos llegué a la conclusión de que el problema estaba en un if del tipo:

if ($a = $b) { ...

Y no podía entender por qué esa condición siempre evaluaba verdadero cuando $a y $b NO valían lo mismo.
Es que estoy acostumbrado a otros lenguajes (como Pascal) donde el signo igual dentro del if es una comparación pero en PHP es SIEMPRE una asignación aunque esté dentro del condicional de un if o un while y SIEMPRE devuelve verdadero...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar