Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] recoger datos de input text y checkbox en array para guardar en bd

Estas en el tema de recoger datos de input text y checkbox en array para guardar en bd en el foro de PHP en Foros del Web. Buenas tardes, antemano muchas gracias por la ayuda que me puedan otorgar, mi pregunta es como puedo guardar los datos de un input text y ...
  #1 (permalink)  
Antiguo 19/06/2013, 15:37
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 1
Pregunta recoger datos de input text y checkbox en array para guardar en bd

Buenas tardes, antemano muchas gracias por la ayuda que me puedan otorgar, mi pregunta es como puedo guardar los datos de un input text y checkbox a la vez, por medio de un array, estoy haciendo un sistema de test creando un formulario con un titulo y 5 opciones la cual cada opcion puede tener bien un radio o un checkbox, bien me da el caso que cuando selecciono los checkbox me cuenta los checkbox seleccionados y me los guarda pero no en el orden guardado con los demas checkbox no seleccionados..

Aqui algo de mi codigo a insertar los datos

Código PHP:
Ver original
  1. $newReg= new Preguntas();
  2.         $regMensaje=$newReg->insert_preguntas($_POST['id_examen'],$_POST['titulo']);
  3.        
  4.         $id_pregunta = mysql_insert_id();
  5.         $cont = '0';
  6.         $cant = count($_POST['preg']);
  7.         //$cant1 = count($_POST['valor']);
  8.         while($cont < $cant) {
  9.         $valor = $_POST['resp']["$cont"];
  10.         $opciones = $_POST['preg']["$cont"];
  11.        
  12.         $sql = mysql_query("INSERT INTO opciones (id_pregunta, nombre, valor) VALUES ('".$id_pregunta."', '".$opciones."', '".$valor."')");
  13.         $cont++;
  14.         }
  #2 (permalink)  
Antiguo 19/06/2013, 15:44
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: recoger datos de input text y checkbox en array para guardar en bd

Lo que haces es solo guardar los seleccionados? quieres que tambien se guarden los no seleccionados?
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 19/06/2013, 15:48
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 1
Respuesta: recoger datos de input text y checkbox en array para guardar en bd

algo asi, quiero que los seleccionados se guarden en la mismo posicion del array de cada input text, aun asi no habiendo antes seleccionados
  #4 (permalink)  
Antiguo 19/06/2013, 15:56
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: recoger datos de input text y checkbox en array para guardar en bd

segun veo solo guardas los que estan seleccionados ,, cuando un check no se selecciona no se almacena o se hace inexistente cuando lo mandas por post

podrias hacer una prueba de esto imprimiendo en tu pagina antes de :

Cita:
$newReg= new Preguntas();
$regMensaje=$newReg->insert_preguntas($_POST['id_examen'],$_POST['titulo']);
el arreglo de los post

Cita:
print_r($_POST)
selecciona uno y veras que solo muestra uno , selecciona todos y todos apareceran
en tu caso podrias darle un nombre especifico a cada check

Cita:

<input type="checkbox" name="micheck1">
<input type="checkbox" name="micheck2">
<input type="checkbox" name="micheck3">
<input type="checkbox" name="micheck4">
<input type="checkbox" name="micheck5">
y cuando la vayas a procesar

Cita:
if(isset($_POST['micheck1'])
{$VAR1=$_POST['micheck1']}
else
{$VAR1='off'}
if(isset($_POST['micheck2'])
{$VAR2=$_POST['micheck2']}
else
{$VAR2='off'}
f(isset($_POST['micheck3'])
etc..
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #5 (permalink)  
Antiguo 19/06/2013, 16:08
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 1
Respuesta: recoger datos de input text y checkbox en array para guardar en bd

en ese caso tendria que modificar la estructura de la base de datos y colocar un campo por cada opcion colocada, y tan solo he puesto una para poder guardar la seleccionada en cada input, tambien habia pensado en ese proceso, pero como dices tan solo coge los check seleccionado mas no los otros, he intentado el proceso antes pero me sigue guardando en las primeras pociones lo datos

Código PHP:
Ver original
  1. while($cont < $cant) {
  2.         $opciones = $_POST['preg']["$cont"];
  3.         if(isset($_POST['resp']["$cont"])){
  4.             $valor = $_POST['resp']["$cont"];
  5.         }else{
  6.             $valor = " ";      
  7.         }
  8. //consulta de insertar
  9. }
  #6 (permalink)  
Antiguo 19/06/2013, 16:33
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: recoger datos de input text y checkbox en array para guardar en bd

no seria manejarlos en arreglos si no de la forma:
Código PHP:
Ver original
  1. $cant = $_POST['totalchecks']);
  2.         while($cont < $cant) {
  3.        $nombre='micheck'.$cant;
  4.        if(isset ($_POST[$nombre]))
  5.        {
  6.        $valor = $_POST[$nombre];
  7.        }
  8.        else
  9.        {
  10.        $valor = 0;
  11.        }
  12.        
  13.         $opciones = $_POST['preg']["$cont"];
  14.        
  15.         $sql = mysql_query("INSERT INTO opciones (id_pregunta, nombre, valor) VALUES ('".$id_pregunta."', '".$opciones."', '".$valor."')");
  16.         $cont++;
  17.         }

siendo "totalchecks" un input hidden donde tendra el total de checks impresos o mostrados
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #7 (permalink)  
Antiguo 19/06/2013, 22:29
Avatar de miguelangelbravo  
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 1
Respuesta: recoger datos de input text y checkbox en array para guardar en bd

Pirruman gracias por ayuda, lo acabo de conseguir, tuve que cambiar el name de cada uno de los check consecutivamente del 0 al 4 para poder capturarlos de la forma como lo hiciste, sin la necesidad de colocar el input type hidden ya que la cantidad de input text son los mismos que los de check aquí el código por si alguien les sirve..

Código PHP:
Ver original
  1. $newReg= new Preguntas();
  2.         $regMensaje=$newReg->insert_preguntas($_POST['id_examen'],$_POST['titulo']);
  3.        
  4.         $id_pregunta = mysql_insert_id();
  5.         $cont = '0';
  6.         $cant = count($_POST['preg']);       
  7.         while($cont < $cant) {
  8.         $opciones = $_POST['preg']["$cont"];
  9.         $nombre='resp'.$cont;
  10.          if(isset($_POST[$nombre])){
  11.          $valor = $_POST[$nombre];
  12.          }else{
  13.          $valor = " ";
  14.          }     
  15.        
  16.         $sql = mysql_query("INSERT INTO opciones (id_pregunta, nombre, valor) VALUES ('".$id_pregunta."', '".$opciones."', '".$valor."')");
  17.         $cont++;
  18.         }

Código PHP:
Ver original
  1. <table border="0">
  2. <tr>
  3. <td class="bgtd">Pregunta :</td>
  4. <td colspan="3">
  5. <textarea name="titulo" id="titulo"><?php echo $regMensaje[0]['titulo']; ?></textarea>
  6. </td>
  7. </tr>
  8. <tr>
  9. <td class="bgtd">Opci&oacute;n 01</td>
  10. <td>
  11. <textarea name="preg[]" id="preg"><?php echo $regMensaje[0]['preg1']; ?></textarea>
  12. </td>
  13. <td class="bgtd">Opc Correcta</td>
  14. <td align="center">
  15. <input type="checkbox" name="resp0" id="acept1" value="1" />
  16. </td>
  17. </tr>
  18. <tr>
  19. <td class="bgtd">Opci&oacute;n 02</td>
  20. <td>
  21. <textarea name="preg[]" id="preg2"><?php echo $regMensaje[0]['preg2']; ?></textarea>
  22. </td>
  23. <td class="bgtd">Opc Correcta</td>
  24. <td align="center">
  25. <input type="checkbox" name="resp1" id="acept2" value="2" />
  26. </td>
  27. </tr>
  28. <tr>
  29. <td class="bgtd">Opci&oacute;n 03</td>
  30. <td align="center">
  31. <textarea name="preg[]" id="preg3"><?php echo $regMensaje[0]['preg3']; ?></textarea>
  32. </td>
  33. <td class="bgtd">Opc Correcta</td>
  34. <td align="center">
  35. <input type="checkbox" name="resp2" id="acept3" value="3" />
  36. </td>
  37. </tr>
  38. <tr>
  39. <td class="bgtd">Opci&oacute;n 04</td>
  40. <td>
  41. <textarea name="preg[]" id="preg4"><?php echo $regMensaje[0]['preg4']; ?></textarea>
  42. </td>
  43. <td class="bgtd">Opc Correcta</td>
  44. <td align="center">
  45. <input type="checkbox" name="resp3" id="acept4" value="4" />
  46. </td>
  47. </tr>
  48. <tr>
  49. <td class="bgtd">Opci&oacute;n 05</td>
  50. <td>
  51. <textarea name="preg[]" id="preg5"><?php echo $regMensaje[0]['preg5']; ?></textarea>
  52. </td>
  53. <td class="bgtd">Opc Correcta</td>
  54. <td align="center">
  55. <input type="checkbox" name="resp4" id="acept5" value="5" />
  56. </td>
  57. </tr>
  58. </table>

Etiquetas: checkbox, input, text
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 14:57.