Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] guardar input dinamicos en base de datos

Estas en el tema de guardar input dinamicos en base de datos en el foro de Javascript en Foros del Web. hola buenas a todos tengo un formulario y cuando guardo los datos en la base datos me los guarda todos pero lo del input dinamico ...
  #1 (permalink)  
Antiguo 04/05/2015, 13:20
Avatar de lisllo_1  
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
guardar input dinamicos en base de datos

hola buenas a todos tengo un formulario y cuando guardo los datos en la base datos me los guarda todos pero lo del input dinamico me los guarda en blanco
agradezco su ayuda...gracias
Código codigo:
Ver original
  1. <?php
  2.     include_once "../conectar/conexion.php";
  3.     include_once "../inicio.php";
  4.    
  5.     $idS = $_GET['Sede'];
  6.     $idE = $_GET['Escuela'];
  7.     $idN = $_GET['Nombre'];
  8.     $codigoS="";
  9.     $codigoE="";
  10.     $Nombre="";
  11.     $combobit_pn="";
  12.    
  13.     $buscarp = "SELECT MAX(p.Codigo),p.Nombre,e.Nombre AS Escuela,s.Nombre AS Sede FROM programas p,escuelas e,sedes s WHERE p.Nombre = '".$_GET['Nombre']."' AND p.Escuela =".$_GET['Escuela']." AND p.Sede = ".$_GET['Sede']."";
  14.     $resultP = mysql_query($buscarp) or die(mysql_error());
  15.     while($row1=mysql_fetch_row($resultP)){
  16.         $combobit_pn .=$row1[1];
  17.         $combobit_pn1 =$row1[0];
  18.         $codigoE .=$row1[2];
  19.         $codigoS .=$row1[3];
  20.        
  21.     }
  22. ?>
  23. <html lang="es">
  24.     <head>
  25.         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  26.         <title>Crear Guias</title>
  27.         <link rel="stylesheet" href="/MatrizCensa/estilos/formulario2.css">
  28.         <script language="JavaScript" src="/MatrizCensa/calendario/javascripts.js"></script>
  29.         <link rel="STYLESHEET" type="text/css" href="/MatrizCensa/calendario/estilo.css">
  30.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  31.         <script type="text/javascript" src="/MatrizCensa/js/jquery-1.3.2.min.js"></script>
  32.         <link rel="stylesheet" href="/MatrizCensa/estilos/estilos.css">
  33.         <script type="text/javascript">
  34.             function crearCampos(cantidad){
  35.                var div = document.getElementById("Guia");
  36.                while(div.firstChild)div.removeChild(div.firstChild); // remover elementos;
  37.                for(var i = 1, cantidad = Number(cantidad); i <= cantidad; i++){
  38.                    var salto = document.createElement("P");
  39.                    var input = document.createElement("input");
  40.                    var text = document.createTextNode("Guia " + i + ": ");
  41.                    input.setAttribute("name", "nombre1[]");
  42.                    input.setAttribute("size", "12");
  43.                    input.className = "input";
  44.                    salto.appendChild(text);
  45.                    salto.appendChild(input);
  46.                    div.appendChild(salto);
  47.                 }
  48.             }  
  49.         </script>
  50.     </head>
  51.      <body>
  52.          <form name = "fcalen" enctype=multipart/form-data" action="" method="post" class="registro" >
  53.          <table>
  54.          <div><tr><td>Sede :<input type="text" name="seden" value ="<?php echo $codigoS; ?>" disabled>
  55.                              <input type="hidden" name="sede" value ="<?php echo $idS; ?>" ></div></td>
  56.          <div><td>Escuela :<input type="text" name="escuelan" value ="<?php echo $codigoE; ?>" disabled>
  57.                             <input type="hidden" name="escuela" value ="<?php echo $idE; ?>" ></div></td></tr>
  58.          <div><tr><td>Programa :<input type="text" name="programan" value ="<?php echo $combobit_pn; ?>" disabled>
  59.                                <input type="hidden" name="programa" value ="<?php echo $combobit_pn1; ?>" ></div></td></tr>
  60.          <tr><td>Numeros de Guias:<input type="text" name="cantidad" id="cantidad" value="" onkeyup="crearCampos(this.value);" ></div></td></tr>
  61.         </table>
  62.           <input type="submit" id="boton" name="crear" value="Crear" onclick="crearCampos(this.form.cantidad.value);" ><div id="Guia"></div>
  63.         </form>
  64.     </body>
  65.     </html>
  66.     <?php
  67.     if(isset($_POST['crear'])){
  68.         for($i = 0; $i < count($_POST['nombre1']); $i++) { // Tomas el valor del campo
  69.         //$variable = $_POST['nombre1'][$i];  // Aqui lo verificas e insertas en la base de datos
  70.        
  71.           $guardar = "INSERT INTO guias(Nombre, Programa, Escuela, Sede, Numero_guia) VALUES ('".($_POST['nombre1'][$i])."','".$_POST['programa']."','".$_POST['escuela']."','".$_POST['sede']."','".$_POST['cantidad']."')";
  72.           $result = mysql_query($guardar) or die(mysql_error());
  73.         }        
  74.           $date = date_default_timezone_get();
  75.           $crearLog = "INSERT INTO log_usr(Usuario, Fecha, Accion) VALUES ('".$_SESSION['userid']."','".$date."','Creacion de guias.')";
  76.           $result = mysql_query($crearLog) or die(mysql_error());      
  77.           /*header("location:/MatrizCensa/");*/
  78.         }elseif(isset($_POST['cancelar'])){
  79.              header("location:/MatrizCensa/inicio.php");
  80.        
  81.     }
  82.  ?>
  #2 (permalink)  
Antiguo 04/05/2015, 13:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: guardar input dinamicos en base de datos

El nombre que asignas a las cajas de texto creadas dinámicamente, es diferente al que utilizas para tomar el valor llegado mediante GET. Corrige eso.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 04/05/2015, 14:01
Avatar de lisllo_1  
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Respuesta: guardar input dinamicos en base de datos

Cita:
Iniciado por Alexis88 Ver Mensaje
El nombre que asignas a las cajas de texto creadas dinámicamente, es diferente al que utilizas para tomar el valor llegado mediante GET. Corrige eso.

Saludos
alexis el nombre que se encuentra en el get me trae un dato totalmente diferente al que necesito ingresar en el input, son 3 datos que necesito en el formulario.
  #4 (permalink)  
Antiguo 04/05/2015, 14:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: guardar input dinamicos en base de datos

Haz esto:

Código PHP:
Ver original
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';

Y muéstranos el resultado.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 04/05/2015, 14:33
Avatar de lisllo_1  
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Respuesta: guardar input dinamicos en base de datos

Cita:
Iniciado por Alexis88 Ver Mensaje
Haz esto:

Código PHP:
Ver original
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';

Y muéstranos el resultado.
Escuela :
Programa :
Numeros de Guias:

Array
(
[sede] => 1
[escuela] => 2
[programa] => 54
[cantidad] => 2
[crear] => Crear
[nombre1] => Array
(
[0] =>
[1] =>
)

)

Array
(
[sede] => 1
[escuela] => 2
[programa] => 54
[cantidad] => 2
[crear] => Crear
[nombre1] => Array
(
[0] =>
[1] =>
)

)
  #6 (permalink)  
Antiguo 04/05/2015, 15:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: guardar input dinamicos en base de datos

Se establecen las cajas de texto en el array asociativo, pero no llegan los valores. Solo por las dudas, establece índices en cada caja de texto creadas, entre los corchetes [].

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 04/05/2015, 15:10
Avatar de lisllo_1  
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Respuesta: guardar input dinamicos en base de datos

Cita:
Iniciado por Alexis88 Ver Mensaje
Se establecen las cajas de texto en el array asociativo, pero no llegan los valores. Solo por las dudas, establece índices en cada caja de texto creadas, entre los corchetes [].

Saludos
le coloque un indice y me sale un error
y en el post
1 0.0012 270784 {main}( ) ..\Crearprogramaguias.php:0

( ! ) SCREAM: Error suppression ignored for
( ! ) Notice: Undefined offset: 0 in C:\wamp\www\MatrizCensa\programas\Crearprogramagui as.php on line 71

Array
(
[sede] => 1
[escuela] => 2
[programa] => 54
[cantidad] => 2
[crear] => Crear
[nombre1] => Array
(
[1] =>
)

)
  #8 (permalink)  
Antiguo 04/05/2015, 15:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: guardar input dinamicos en base de datos

¿Podrías mostrarnos la manera en la que añadiste los índices? Recuerda que debes de hacerlo dinámicamente. También corrobora en consola, dándole clic derecho a cualquiera de las cajas de texto creadas y luego seleccionando 'Inspeccionar elemento', que se estén asignando las propiedades de la manera correcta.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 04/05/2015, 15:34
Avatar de lisllo_1  
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Respuesta: guardar input dinamicos en base de datos

en la parte que esta en comentario fue que lo hice

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.             function crearCampos(cantidad){
  3.                var div = document.getElementById("Guia");
  4.                while(div.firstChild)div.removeChild(div.firstChild);
  5.                for(var i = 1, cantidad = Number(cantidad); i <= cantidad; i++){
  6.                    var salto = document.createElement("P");
  7.                    var input = document.createElement("input");
  8.                    var text = document.createTextNode("Guia " + i + ": ");
  9.                    input.setAttribute("name", "nombre1[1]");// en esta parte fue que lo hice
  10.                    input.setAttribute("size", "12");
  11.                    input.className = "input";
  12.                    salto.appendChild(text);
  13.                    salto.appendChild(input);
  14.                    div.appendChild(salto);
  15.                 }
  16.             }
si no es asi por favor ayudame....
  #10 (permalink)  
Antiguo 04/05/2015, 15:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: guardar input dinamicos en base de datos

Utiliza el contador del bucle para establecer el índice, porque de esa manera, todas las cajas tendrán el 1 por índice. No te olvides de hacer lo que te sugerí en la respuesta anterior.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 04/05/2015, 16:07
Avatar de lisllo_1  
Fecha de Ingreso: mayo-2015
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Exclamación Respuesta: guardar input dinamicos en base de datos

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Podrías mostrarnos la manera en la que añadiste los índices? Recuerda que debes de hacerlo dinámicamente. También corrobora en consola, dándole clic derecho a cualquiera de las cajas de texto creadas y luego seleccionando 'Inspeccionar elemento', que se estén asignando las propiedades de la manera correcta.
te cuento lo logre!!!!

primero hice esto
Código Javascript:
Ver original
  1. input.setAttribute("name", "nombre1["+i+"]");
y en en php
Código PHP:
Ver original
  1. if(isset($_POST['crear'])){
  2.         $variable = $_POST['nombre1'];
  3.         for($i = 1; $i < count($variable); $i++) { // Tomas el valor del campo
  4.           $guardar = "INSERT INTO guias(Nombre, Programa, Escuela, Sede, Numero_guia) VALUES ('".($variable[$i])."','".$_POST['programa']."','".$_POST['escuela']."','".$_POST['sede']."','".$i."')";


y borre el onclick

antes
Código HTML:
Ver original
  1. <input type="submit" id="boton" name="enviar" value="Crear" onclick="crearCampos(this.form.cantidad.value);" >
y ahora
Código HTML:
Ver original
  1. <input type="submit" id="boton" name="crear" value="Crear"><div id="Guia"></div>

Última edición por lisllo_1; 04/05/2015 a las 16:11 Razón: me falto algo

Etiquetas: dinamicos, formulario, html, input, js, php, select, valor, variable
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 23:53.