Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

PHP - Ayuda formulario

  Imprimir  
Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:gerniracing (46 intervenciones)
Fecha:08/05/2012 00:11:09
Aupa,

Estoy bloqueado un un punto y no se como solucionarlo, espero que alguien me pueda echar una mano. Estoy creando un formulario el cual según la opción que seleccione en una casilla SELECT me tiene que mostrar X lineas (las cantidad de lineas a mostrar serian las que un campo numérico de la base de datos devolveria cuando se selecciona la opcion en el casilla SELECT)

Tengo lo siguiente:

<?php require("conexion.php"); $query = "SELECT * FROM T01Carreras LEFT JOIN T03Tramos ON T01Carreras.IDCarreraT01 = T03Tramos.IDCarreraT03 WHERE (((T01Carreras.CarreraTerminadaT01)=0) AND ((T03Tramos.IDTramoT03) Is Null))"; $queEmp = mysql_query($query, $conexion); ?> </head> <body> <form id="frRegister" name="frRegister" method="post" action="guardar-carrera.php"> <table width="400" border="0"> <tr> <td>Seleccionar carrera: <br /> <select name="carrera" id="carrera"> <?php while ($resEmp = mysql_fetch_assoc($queEmp)){ ?> <option value="<?php $resEmp['IDCarreraT01']; ?>" selected="selected"><?php echo $resEmp['NombreCarreraT01']; ?></option> <?php } ?> </select></td> </tr> <?php // Me faltaria aqui el while, for... no lo se <tr> <td>Nombre TC-<br /> <input name="nombre" type="text" id="nombre" size="40" class="required" /></td> </tr> <?php } ?> </table> <p> <input type="submit" name="enviar" id="enviar" value="Enviar" /> <label> <input name="restablecer" type="reset" id="restablecer" value="Restablecer" /> </label> </p> </form> </body> </html>

El campo de la base de datos se llama NumeroTramosCarreraT01, donde esta el numero de lineas que tendrían que salir al seleccionar en la SELECT.

Como hago para que salga la cantidad de lineas que estan en el campo de la base de datos del registro seleccionado y luego como hago para guardar esas lineas en un registro cada uno?

Muchisimas gracias.
Responder
información
Otras secciones de LWP con contenido similar...
Imágen de perfil de xve
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:xve (3340 intervenciones)
Fecha:08/05/2012 07:16:11
Hola, no entiendo muy bien lo que estas preguntando... lo que he entendido, es que quieres que al pulsar sobre una opción del <select> se realice una nueva consulta a la base de datos (select) buscando por el valor seleccionado y mostrándolo debajo del <select>?

Es esto lo que quieres hacer?
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:gerniracing (46 intervenciones)
Fecha:08/05/2012 08:48:32
Perdoname por lo explicarme bien, que me he liado a la hora de explicar.

Vas bien encaminado, espero que con la explicacion que te doy lo entiendas mejor.

Como dices tu, al pulsar sobre una opción del <select> quiero que se realice una nueva consulta a la base de datos (select) buscando por el valor seleccionado y mostrar debajo una tabla con X campos de texto donde introducir luego datos para guardarlos en la base de datos, donde X seria un valor de un campo que sera devuelto cuando se realice la consulta a la base de datos.

Muchas gracias
Comentar
Imágen de perfil de xve
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:xve (3340 intervenciones)
Fecha:08/05/2012 10:05:10
Ok, entendido!!!

Esto lo puedes hacer a mi modo de ver de dos formas, una mas simple, que es refrescando la pagina, y otra un poco mas complicada que es utilizando ajax con jquery.

De que manera quieres hacerlo?
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:gerniracing (46 intervenciones)
Fecha:08/05/2012 11:19:43
Si te digo la verdad no lo tengo claro. Porque yo de programación se lo basico...si te digo la verdad no se como hacer para que me lea el campo <select> y de eso hacer una consulta a la base de datos para leer un campo numerico y mediante un while o no se como mostrar las lineas correspondientes para luego guardarlos.

Me sirve una cosa que funciona bien, si es mejor utilizando ajax con jquery, mismo, aunque me tenga que comer un poco la cabeza, teniendo el codigo basico luego ya jugaria yo hasta conseguirlo.

Muchas gracias
Comentar
Imágen de perfil de xve
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:xve (3340 intervenciones)
Fecha:08/05/2012 11:55:05
Mira, una manera sencilla, es utilizando el evento onchange()... seria algo así:

<?php echo $_POST["miSelect"]: ?> <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="POST"> <select name="miSelect" onchange="submit()"> <option value="0">Selecciona</option> <option value="1">Primer valor</option> <option value="2">Segundo valor</option> </select> </form>
Pon este código en un archivo .php y veras como funciona... en el momento que selecciones una opción, del <select> hace el submit del formulario y envia el valor seleccionado. Con el echo $_POST["miSelect"]: que hay en la segunda linea mostramos el valor seleccionado en el <select>

si tienes cualquier duda...
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:gerniracing (46 intervenciones)
Fecha:08/05/2012 17:58:14
Muchas gracias. Primero he creado un PHP con el codigo proporcionado mas o menos es lo que me hace falta. A partir del código que me has proporcionado he realizado lo siguiente:

<form action="<?php echo $_SERVER["PHP_SELF"]?>" method="POST"> <table width="400" border="0"> <tr> <td>Seleccionar numero tramos: <br /> <select name="miSelect" onchange="submit()"> <?php while ($resEmp = mysql_fetch_assoc($queEmp)){ ?> <option value="<?php $resEmp["NumeroTramosCarreraT01"]; ?>"><?php echo $resEmp['NombreCarreraT01']; ?></option> <?php } ?> </select> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <?php for ( $i = 1 ; $i <= $_POST["miSelect"] ; $i ++) {?> <tr> <td>Nombre TC-<?php print $i ;?><br /> <input name="nombre" type="text" id="nombre" size="40" class="required" /></td> <td>Kilometros:<br /> <input name="kilometros" type="text" id="kilometros" size="10" class="required" /></td> <td>Entrenamiento:<br /> <select name="tipo" id="tipo"> <option value="1">Si</option> <option value="0" selected="selected">No</option> </select> </td> <tr> <?php } ?> </table> </form>

Una cosa. El <option value="<?php $resEmp["NumeroTramosCarreraT01"]; ?>"> parece que esta algo mas porque no me devuelvo el valor del campo de la BD, por que en el for que tengo debajo no me sale ninguna linea. En cambio, si le pongo un numero en value, por ejemplo <option value="5"> me muestra 5 lineas correctamente.

Luego tengo mas dudas, pero primero intentare arreglar este y luego seguir con los demas, que ya cuando tenga esto podre probarlo.

Un saludo!
Comentar
Imágen de perfil de xve
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:xve (3340 intervenciones)
Fecha:08/05/2012 19:00:27
Ahora que me lo comentas lo he visto... estas utilizando mysql_fetch_assoc(), y de la manera que lo tienes, tendrías que utilizar mysql_fetch_array()
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:gerniracing (46 intervenciones)
Fecha:08/05/2012 19:46:05
muchas gracias.

El problema ese ya tengo resuelto. Ahora tengo otra duda. Con el FOR creo las lineas que me hace falta, pero que id o nombre le doy a cada casilla para luego guardar en la base de datos?

Me imagino que le tendre que poner nombre y detras el valor de la i del for, y por ejemplo quedaria:

nombre1
nombre2
nombre3
.........

pero como lo hago?

Muchas gracias!
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:gerniracing (46 intervenciones)
Fecha:08/05/2012 19:56:08
Lo que comento seria aqui, en input name y el id:

<?php for ( $i = 1 ; $i <= $_POST["miSelect"] ; $i ++) {?> <tr> <td>Nombre TC-<?php print $i ;?><br /> <input name="nombre" type="text" id="nombre" size="40" class="required" /></td> <td>Kilometros:<br /> <input name="kilometros" type="text" id="kilometros" size="10" class="required" /></td> <td>Entrenamiento:<br /> <select name="tipo" id="tipo"> <option value="1">Si</option> <option value="0" selected="selected">No</option> </select> </td> <tr> <?php } ?>
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:gerniracing (46 intervenciones)
Fecha:08/05/2012 21:07:58
Olvidar lo anterior, que ya lo he solucionado poniendo:
<?php echo '<input name="nombre_'.$i.'" type="text" size="40" class="required">';?></td>

Ahora solo me queda guardar los datos en la base de datos. Yo hasta ahora no hacia mediante el form en action podia en fichero guardar.php donde tenia el insert into........

pero como lo hago aqui?

Y aparte tengo una duda, al realizar onchange="submit()", me borra lo seleccionado en la casilla no? Es que tengo que pasar el valor ese tambien a la base de datos.
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Ayuda formulario

Autor:gerniracing (46 intervenciones)
Fecha:08/05/2012 23:11:18
He realizado lo siguiente para guardar en la base de datos:

if(isset($_POST['enviar'])) { echo $_POST["miSelect"]; for ( $i = 1 ; $i <= $_POST["miSelect"] ; $i ++) { echo $_POST["miSelect"]; $id2 = sqlValue($_POST["'.$i.'"], "int"); $idcarrera = sqlValue($_POST["miSelect"], "int"); $nombre = sqlValue($_POST["nombre_'.$i.'"], "text"); $fecha = sqlValue($_POST["fecha_'.$i.'"], "date"); $metros = sqlValue($_POST["metros_'.$i.'"], "int"); $entrena = sqlValue($_POST["entrena_'.$i.'"], "int"); $sql = "INSERT INTO T03Tramos (ID2TramoT03, IDCarreraT03, NombreT03, FechaT03, KmT03, EntrenamientoT03)"; $sql.= "VALUES (".$id2.", ".$idcarrera.", ".$nombre.", ".$fecha.", ".$metros.", ".$metros.")"; mysql_query($sql, $conexion); } } }

Tengo el problema que al realizar el:

<select name="miSelect" onchange="submit()">

el valor de miSelect se queda en 0 con lo cual no entra en el for que tengo para introducir los datos en la BD.

Muchisimas gracias
Comentar