Autor
|
Tema: Inserción de datos en formulario (Leído 2,269 veces)
|
Arm144
Desconectado
Mensajes: 13
|
Buenas, presento el siguiente problema con el que me topo, la cuestión es que tendría que hacer una agenda telefónica("en plan cutre"), en el cual me tiene que mostrar una tabla con los datos que voy introduciendo que son nombre y teléfono. Para ello me apoyo en el input type hidden para que me guarde los valores, ya que al volver a introducir un valor la pagina hace un refresh y me borra lo escrito, es decir se sobreescribe. Mi problema se presenta con esto último, todo el rato se esta sobreescribiendo y no consigo que en la tabla se muestren mas registros. Alguna sugerencia o resolución. Además se presenta el problema que no puedo utilizar JQuery ni Ajax ni javascript, solo Html y PHP. Aqui dejo mi código que evidentemente está defectuoso xD. <html> <head> <title>Agenda</title> </head> <body> <h1 align="center">Agenda de Contactos</h1> <form method="post" action="Agenda.php"> Nombre <input type="text" name="nomTf" ><br> Telefono <input type="tel" name="telTf"><br> <input type="submit" value="Guardar" name="Guardar"> <input type="hidden" name="datosGuardados" value=<?php $datosGuardados?>> </form> <?php if($_POST){ $nombre=$_POST['nomTf']; $telefono=$_POST['telTf']; $datosGuardados=$_POST['datosGuardados']; $datosGuardadosNom[]=$nombre; $datosGuardadosTel[]=$telefono; $contactoNom=implode(',', $datosGuardadosNom); $contactoTel=implode(',', $datosGuardadosTel); if($nombre==""){ echo "El nombre está vacio"; } echo "El teléfono tiene que ser un número"; } echo "Tu contacto se ha guardado que es: " . $contactoNom.','.$contactoTel; echo '<table border="10" align="center" > <tr><td>Nombre</td><td>Teléfono</td></tr>'; echo '<tr>'; echo '<td align="center">'. $nombre.'</td>'; echo '<td align="center">'. $telefono.'</td>'; echo '</tr>'; echo '<tr>'; for ($i = 1; $i < count($datosGuardados); $i++) { echo '<td align="center">'. $contactoNom.'</td>'; echo '<td align="center">'. $contactoTel.'</td>'; } echo '</tr>'; echo '</table>'; } ?> </body> </html>
Gracias de antemano por tomaros la molestia de mirarlo. Mod: Los códigos deben ir en etiquetas GeSHi
|
|
« Última modificación: 12 Noviembre 2016, 00:03 am por engel lex »
|
En línea
|
|
|
|
SetzerFF
Desconectado
Mensajes: 26
PokerFace
|
Recordá poner el código entre código GeSHi.
No podés usar tampoco base de datos (MariaDB, o PostgreSQL por ej.)? Tampoco podes usar un archivo de tipo texto, para actuar como base de datos? o en el peor de los casos cookies?
Porque, cuando, cierres esa pagina, va a aparecer sin entradas nuevamente. Pero si eso no importa...
Lo que veo en el código es que tomas el $datosGuardados en hidden, pero no pasas ningun valor. Podrias usar serialize() y unserialize() para guardar los datos en un array. Y luego, al hacer POST de nuevo, que se deserialize el array, se agreguen los datos nuevos al array, y serializarlo para mostrarlo en el input hidden-
Salu2
|
|
|
En línea
|
Fold'em, Let'em Hit Me, Raise It, Stay with Me
|
|
|
Arm144
Desconectado
Mensajes: 13
|
Saludos. Al final tras mucho ahínco conseguí una resolución. Seguro que no es la mejor ni la más bonita, pero pude salir del paso jajajajaja actualmente le estoy añadiendo algunas comprobaciones. Gracias a todos por todo. Saludos¡¡¡ P.D: dejo el código por si a alguno le interesa. <html> <head> <title>Agenda</title> </head> <body> <?php if($_POST){ $nombre=$_POST['nomTf']; $telefono=$_POST['telTf']; $nom =$_POST["nombres"]; $tel=$_POST["telefonos"]; $salidaNom= $nom.",".$nombre; $salidaTel= $tel.",".$telefono; $contactoNomExp = explode(",", $salidaNom); $contactoTelExp = explode(",", $salidaTel); //Comprobación de que se introdujo un nombre if ($_POST['nomTf']==""){ //No introdujo nombre } //Insercción de datos if((in_array($_POST['nomTf'], $contactoNomExp)==false) && ($_POST['telTf']!="")){ echo '<table border="10" align="center" > <tr color="#c0c0c0"><td>Nombre</td><td>Telefono</td></tr>'; echo '<tr>'; for ($i = 1; $i < count($contactoNomExp); $i++) { echo '<td align="center">'. $contactoNomExp[$i].'</td>'; echo '<td align="center">'. $contactoTelExp[$i].'</td>'; echo '</tr>'; } echo '</table>'; } //Sustitución de numero telefono if((in_array($_POST['nomTf'], $contactoNomExp)==true) && ($_POST['telTf']!="")){ for ($i = 1; $i < count($contactoNomExp); $i++) { echo '<td align="center">'. $contactoNomExp[$i].'</td>'; echo '<td align="center">'. $contactoTelExp[$i].'</td>'; echo '</tr>'; } echo '</table>'; } //Eliminación de registro if((in_array($_POST['nomTf'], $contactoNomExp)==true) && ($_POST['telTf']=="")){ for ($i = 1; $i < count($contactoNomExp); $i++) { unset($contactoNomExp[$i]); unset($contactoTelExp[$i]); echo '</tr>'; } echo '</table>'; } } ?> <h1 align="center">Agenda de Contactos</h1> <form method="post" action="Agenda.php"> Nombre <input type="text" name="nomTf"><br> Telefono <input type="text" name="telTf"><br> <input type="submit" value="Guardar" name="Guardar"> <input type="hidden" name="nombres" value=<?php $salidaNom?>> <input type="hidden" name="telefonos" value=<?php $salidaTel?>> </form> </body> </html>
Mod: Los códigos deben ir en etiquetas GeSHi
|
|
« Última modificación: 12 Noviembre 2016, 00:03 am por engel lex »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pasar Datos de un Formulario Con DataGridView a otro formulario con TEXTBOX C#
.NET (C#, VB.NET, ASP)
|
ALejandro2111
|
0
|
12,983
|
28 Agosto 2008, 19:14 pm
por ALejandro2111
|
|
|
[ADA] Error inexplicable en inserción de datos
Programación General
|
Shurhand
|
0
|
2,007
|
18 Junio 2010, 10:33 am
por Shurhand
|
|
|
Problema a la hora de crear procedure de insercion de datos en oracle
Bases de Datos
|
guass19
|
2
|
3,761
|
20 Junio 2012, 09:04 am
por guass19
|
|
|
evitar inserción de datos al recargar paginas
PHP
|
kakashi20
|
2
|
1,910
|
17 Mayo 2013, 19:07 pm
por Brida
|
|
|
Inserción de datos ABB con archivos
Programación C/C++
|
eduardo1012
|
1
|
1,970
|
27 Octubre 2016, 21:52 pm
por eduardo1012
|
|