elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Inserción de datos en formulario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Inserción de datos en formulario  (Leído 2,269 veces)
Arm144

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Inserción de datos en formulario
« en: 11 Noviembre 2016, 20:38 pm »

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.

Código
  1. <html>
  2. <head>
  3. <title>Agenda</title>
  4. </head>
  5. <body>
  6. <h1 align="center">Agenda de Contactos</h1>
  7. <form method="post" action="Agenda.php">
  8. Nombre <input type="text" name="nomTf" ><br>
  9. Telefono <input type="tel" name="telTf"><br>
  10. <input type="submit" value="Guardar" name="Guardar">
  11. <input type="hidden" name="datosGuardados" value=<?php $datosGuardados?>>
  12.  
  13. </form>
  14. <?php
  15. if($_POST){
  16. $nombre=$_POST['nomTf'];
  17. $telefono=$_POST['telTf'];
  18. $datosGuardados=$_POST['datosGuardados'];
  19.  
  20. $datosGuardadosNom[]=$nombre;
  21. $datosGuardadosTel[]=$telefono;
  22.  
  23. $contactoNom=implode(',', $datosGuardadosNom);
  24. $contactoTel=implode(',', $datosGuardadosTel);
  25.  
  26. if($nombre==""){
  27. echo "El nombre está vacio";
  28. }
  29. if(!is_numeric($telefono)){
  30. echo "El teléfono tiene que ser un número";
  31. }
  32.  
  33. echo "Tu contacto se ha guardado que es: " . $contactoNom.','.$contactoTel;
  34. echo '<table border="10" align="center" >
  35.                <tr><td>Nombre</td><td>Teléfono</td></tr>';
  36. echo '<tr>';
  37. echo '<td align="center">'. $nombre.'</td>';
  38. echo '<td align="center">'. $telefono.'</td>';
  39. echo '</tr>';
  40. echo '<tr>';
  41. for ($i = 1; $i < count($datosGuardados); $i++) {
  42. echo '<td align="center">'. $contactoNom.'</td>';
  43. echo '<td align="center">'. $contactoTel.'</td>';
  44. }
  45. echo '</tr>';
  46. echo '</table>';
  47. }
  48. ?>
  49. </body>
  50. </html>
  51.  

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 Desconectado

Mensajes: 26


PokerFace


Ver Perfil
Re: Inserción de datos en formulario
« Respuesta #1 en: 11 Noviembre 2016, 21:50 pm »

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 Desconectado

Mensajes: 13


Ver Perfil
Re: Inserción de datos en formulario
« Respuesta #2 en: 11 Noviembre 2016, 21:52 pm »

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.

Código
  1. <html>
  2. <head>
  3. <title>Agenda</title>
  4. </head>
  5. <body>
  6. <?php
  7. if($_POST){
  8. $nombre=$_POST['nomTf'];
  9. $telefono=$_POST['telTf'];
  10. $nom =$_POST["nombres"];
  11. $tel=$_POST["telefonos"];
  12. $salidaNom= $nom.",".$nombre;
  13. $salidaTel= $tel.",".$telefono;
  14.  
  15. $contactoNomExp = explode(",", $salidaNom);
  16. $contactoTelExp = explode(",", $salidaTel);
  17. //Comprobación de que se introdujo un nombre
  18. if ($_POST['nomTf']==""){
  19. //No introdujo nombre
  20. }
  21. //Insercción de datos
  22. if((in_array($_POST['nomTf'], $contactoNomExp)==false) && ($_POST['telTf']!="")){
  23. echo '<table border="10" align="center" >
  24.                 <tr color="#c0c0c0"><td>Nombre</td><td>Telefono</td></tr>';
  25. echo '<tr>';
  26. for ($i = 1; $i < count($contactoNomExp); $i++) {
  27. echo '<td align="center">'. $contactoNomExp[$i].'</td>';
  28. echo '<td align="center">'. $contactoTelExp[$i].'</td>';
  29. echo '</tr>';
  30. }
  31. echo '</table>';
  32. }
  33. //Sustitución de numero telefono
  34. if((in_array($_POST['nomTf'], $contactoNomExp)==true) && ($_POST['telTf']!="")){
  35. for ($i = 1; $i < count($contactoNomExp); $i++) {
  36. echo '<td align="center">'. $contactoNomExp[$i].'</td>';
  37. echo '<td align="center">'. $contactoTelExp[$i].'</td>';
  38. echo '</tr>';
  39. }
  40. echo '</table>';
  41. }
  42. //Eliminación de registro
  43. if((in_array($_POST['nomTf'], $contactoNomExp)==true) && ($_POST['telTf']=="")){
  44. for ($i = 1; $i < count($contactoNomExp); $i++) {
  45. unset($contactoNomExp[$i]);
  46. unset($contactoTelExp[$i]);
  47. echo '</tr>';
  48. }
  49. echo '</table>';
  50. }
  51. }
  52.  
  53. ?>
  54. <h1 align="center">Agenda de Contactos</h1>
  55. <form method="post" action="Agenda.php">
  56. Nombre <input type="text" name="nomTf"><br>
  57. Telefono <input type="text" name="telTf"><br>
  58. <input type="submit" value="Guardar" name="Guardar">
  59. <input type="hidden" name="nombres" value=<?php  $salidaNom?>>
  60. <input type="hidden" name="telefonos" value=<?php  $salidaTel?>>
  61. </form>
  62. </body>
  63. </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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines