Foros del Web » Programando para Internet » PHP »

Cómo pasar un valor de un select a un cuadro de texto de un formulario

Estas en el tema de Cómo pasar un valor de un select a un cuadro de texto de un formulario en el foro de PHP en Foros del Web. Hola, como están todos. Mi consulta me ha traido de cabeza bastante tiempo y he recurrido al foro a ver si alguna mente maestra me ...
  #1 (permalink)  
Antiguo 31/08/2004, 14:32
Avatar de huntress  
Fecha de Ingreso: agosto-2004
Ubicación: Chile
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Sonrisa Cómo pasar un valor de un select a un cuadro de texto de un formulario

Hola, como están todos.

Mi consulta me ha traido de cabeza bastante tiempo y he recurrido al foro a ver si alguna mente maestra me puede ayudar.

tengo un formulario con 3 select (menús). el primero muestra los rut's de los alumnos existentes, el segundo muestra los postgrados, y el tercero muestra los cursos que dicta cada postgrado.

En el primer select, al seleccionar uno de los rut's deberia mostrarme el nombre de ese alumno.

En el segundo select, al seleccionar un postgrado, actualiza la página y me llena el tercer select con todos los cursos que dicta es postgrado.

El problema es que no he podido enviar el nombre al campo de texto del formulario, por que lo de actualizar la página y mostrar los cursos ya lo hice.

Hasta ahora solo he logrado mostrar el nombre con un echo, pero no he encontrado forma de mostrarlo dentro del cuadro de texto.

He echo pruebas tratando de mezclar php con javascript, pero no he llegado a ninguna solución.

aqui está lo más relevante del codigo php


<tr>
<td colspan="2"><font color="#666666" size="3" face="Univers Condensed">Rut
<?
echo '<select name = "rut" onChange = ?????? (aqui está el problema)>';
$result=mysql_query("Select * From alumnos Order By alu_rut");

While ($row=mysql_fetch_array($result))
{
echo '$rut';

if (strcmp(trim($rut),$row[0])==0)
{
$sel2 = "selected";
}else{
$sel2 = "";
}
$todo = $row[0].'|'.$row[2].'|'.$row[3];
$paso = explode ("|",$todo);

echo "<option value=".$row[0]." $sel2>".$row[0]."</option>";
}
?></select>
Nombre
<input name="nombre" type="text" size="50" maxlength="60">

</font></td>
</tr>
</table> <br>
<table width="95%" border="1" align="center">
<tr>
<td colspan="2"> <div align="left"><font color="#999999" size="3" face="Univers ExtendedPS"><strong>Antecedentes
del Curso</strong></font></div></td>
</tr>
<tr>
<td colspan="2"><font color="#666666" size="3" face="Univers Condensed">Postgrado
<?
echo '<select name = "post" onChange = TrasPost(this.form)>';
$result=mysql_query("select pos_id,pos_nombre from postgrados order by pos_id");
echo '<option value="0">Seleccione un Postgrado</option>';
While ($row=mysql_fetch_array($result))
{
echo "$rut";
if (strcmp(trim($post),$row[0])==0){
$sel = "selected";
}else{
$sel = "";
}
echo "<option value=".$row[0]." $sel>".$row[1]."</option>";
}
?></select>
Cursos
<?
echo '<select name="cursos" onChange = return TrasProf(this.form)>';
echo '$post';
$result = mysql_query("select pos_id,cur_id,cur_nombre from cursos Where pos_id = '$post' ");
echo '<option value="0">Seleccione un Curso</option>';
While ($row=mysql_fetch_array($result))
{
echo '<option value="'.$row[2].'">'.$row[2].'</option>';
}
?></select>
</font><font color="#666666" size="3" face="Univers Condensed">
<input type="button" name="agregar" value="agregar" onClick="add(document.getElementById('cursos').val ue)">
</font></td>
</tr>
<tr>
<td colspan="2"><font color="#666666" size="3" face="Univers Condensed"> Profesor
del Curso
<input name="profesor" type="text" id="profesor" size="50" maxlength="50">
Fecha Inicio
<input name="fechaini" type="text" id="fechaini" size="15" maxlength="10">
Fecha Termino
<input name="fechater" type="text" id="fechater" size="15" maxlength="10">
</font></td>
</tr>
</table>


Si a algun corazón noble, que quiera ayudar a ésta chica que se inicia en php, sabe como resolver el problema, se lo agradecería de todo corazón.

Huntress

Última edición por huntress; 31/08/2004 a las 14:37
  #2 (permalink)  
Antiguo 31/08/2004, 15:06
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 15 años, 11 meses
Puntos: 1
Saludos.

Ok, tus 3 combos pruebalos primero sin php.

Es decir, has que te cargen información de un combo al otro. Según entiendo son combos dependientes así que sin necesidad de recargar la página puedes hacerlos varias.

eJ:

Combo1 = Rut1-Rut2-Rut3
Combo2= Postg1[Rut1]-Postg2[Rut1]-Postg3[Rut2]-Postg4[Rut3]
Combo3= Cur1[Postg1]-Cur2[Postg2]-Cur3[Postg3]-Cur4[Postg4]

La idea es que las Rut son unicas, pero los Postg dependen de las Rut y a su vez los Cur dependen de las Postg.

Ahora despues que consigas hacer eso, verás que JAvascript usa unos arregls que se imprimen en el html para armar esos combos.

Lo que te tocaría hacer ahora es armar dichos arreglos con PHP haciendo los querys respectivos para cada opción.

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #3 (permalink)  
Antiguo 31/08/2004, 15:24
Avatar de huntress  
Fecha de Ingreso: agosto-2004
Ubicación: Chile
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Sonrisa Select anidados

Gracias José por tu respuesta.

Claro que tengo que aclarar que los 3 select's no estan anidados , solo están anidados el segundo y el tercero, lo que pasa, es que ésta página es para que 1 alumno, se inscriba en los cursos del postgrado elegido. Por lo tanto se elige un rut, que en las tablas no tienen nigun tipo de relación con los postgrados (todavia, para eso es ésta página).

Mi pregunta es ¿como hago para enviar el nombre del alumno, luego de seleccionado 1 rut?

echo '<select name = "rut" onChange = algo que envia el nombre del alumno al campo nombre>';


..... <input name = nombre>


(si alguien me lo puede explicar con código, miren que soy autodidacta y tengo todavia muchas falencias técnicas)
  #4 (permalink)  
Antiguo 31/08/2004, 16:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Eso lo debes solventar desde javascript ..

Todo lo que hagas en el "cliente" -antes- de dar al "submit" de tu formuario (en tu ejemplo) debes resolverlo con javascript (que para eso ya haces tu evento "onChange" ...)

Fijate en el código HTML que generas vía PHP (en tu navegador ver -> código fuente) ... pon ese código en el foro de Javascript (como pregunta) y solventa el problema primero en Javascript.

Un saludo,
  #5 (permalink)  
Antiguo 02/09/2004, 10:17
Avatar de huntress  
Fecha de Ingreso: agosto-2004
Ubicación: Chile
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
respuesta en Foro de javascript

Ya hace unos dias que puse mi pregunta en el foro de javascript, y nadie sabe como hacerlo.

He logrado avanzar un poco, por lo menos ahora me muestra algo en el cuadro de texto, pero el problema es que siempre me muestra el nombre del primer alumno. cómo puedo hacer para que me muestre el elemento que se ha seleccionado?

<?
echo '<select name = "rut" onclick = "$prueba = this.value">';
$result=mysql_query("Select * From alumnos Order By alu_rut");

While ($row=mysql_fetch_array($result))
{
echo '$rut';

if (strcmp(trim($rut),$row[0])==0)
{
$sel2 = "selected";
}else{
$sel2 = "";
}
$todo = $row[0].'|'.$row[2].'|'.$row[3];
$paso = explode ("|",$todo);
echo "<option value=".$row[0]." $sel2>".$row[0]."</option>";
}
?></select>

<input name ="varrut" type="hidden" value = " <? echo $paso[1].' '.$paso[2];?> ">
<input name="mostrar" type="button" id="mostrar" value="Mostrar Nombre" onClick="TrasNombre(varrut.value,this.form)">



La funcion TrasNombre lo que hace es pasar el nombre del alumno al campo nombre.

function TrasNombre(rutaux,formu)
{
formu.nombre.value = rutaux;
}


Por favor ayudenme a resolver esto, éste sistema lo hago para terminar mi practica profesional, por favor, estoy desesperada
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 20:19.