Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Agregar datos, y luego guardar

Estas en el tema de Agregar datos, y luego guardar en el foro de PHP en Foros del Web. Buenas noches, tras resolver la primera duda (en otro post llamado Duda PHP), me ha surgido otro problema. Comento el caso: Tengo una tabla llamada ...
  #1 (permalink)  
Antiguo 13/07/2015, 18:02
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Pregunta Agregar datos, y luego guardar

Buenas noches, tras resolver la primera duda (en otro post llamado Duda PHP), me ha surgido otro problema.

Comento el caso:

Tengo una tabla llamada Detalles, que ha salido tras normalizar con la 1 forma normal otra tabla, llamada Compra.



En la tabla detalles, se almacena el id de un producto, junto al id de factura, y a la cantidad de producto que se ha comprado.

Recojo esos datos a través de un formulario:



Y si realizo la consulta, puedo ver que todo se ha insertado como es debido:



Pues bien..quería saber si es posible que con tan sólo poner los campos de producto y cantidad una vez, por medio de algún script (espero que se pueda en php), pueda ir almacenando los datos (con algún botón), hasta que finalice de insertar los produtos que quiera, tras lo cual pueda pular otro botón (guardar compra, por ejemplo), y se inserten todos los datos.

Si fuera posible algo así solucionaría varios problemas que me surgen, como es el repetir varias veces los campos producto y cantidad, tener que realizar un código php muy denso a base de if y else, y aparte, tendría que poner un límite de productos por factura, ya que si no quedaría demasiado exagerado todo.

No sé si he explicado mi duda con claridad, si no es así, intentaré explicarlo mejor.

Un saludo y muchas gracias por atenderme.

P.D He de decir que estoy empezando a programar, y tan sólo conozco (mínimamente el lenguaje de PHP, basado básicamente en base de datos).
  #2 (permalink)  
Antiguo 13/07/2015, 18:26
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Agregar datos, y luego guardar

porque simplemente n o repites las filas y las pasas como array, asi no tendrias que realizar el procedimiento por cada producto
  #3 (permalink)  
Antiguo 14/07/2015, 03:46
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Agregar datos, y luego guardar

¿Cómo sería eso? No manejo bien los array.. Y las filas, ¿a cuáles te refieres?

Gracias por contestar.
  #4 (permalink)  
Antiguo 15/07/2015, 05:21
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Agregar datos, y luego guardar

ok con este codigo generas o duplicas las filas de tu tabla
Código Javascript:
Ver original
  1. <!-------------duplicar tabla------------------->
  2. // <![CDATA[
  3.  
  4. var posicionCampo = 1;
  5.  
  6.  
  7. function agregarUsuario() {
  8.  
  9.     nuevaFila = document.getElementById("tablatracking").insertRow(-1);
  10.  
  11.     nuevaFila.id = posicionCampo;
  12.  
  13.     nuevaCelda = nuevaFila.insertCell(-1);
  14.  
  15.     nuevaCelda.innerHTML = "<td><textarea cols='50' name='requisito[" + posicionCampo + "]' value='' placeholder=' Requisito...' required></textarea></td>";
  16.    
  17.     nuevaCelda = nuevaFila.insertCell(-1);
  18.  
  19.     nuevaCelda.innerHTML = "<td><input type='hidden' size='1' name='rif[" + posicionCampo + "]' value='<?php echo $rif ?>'></td>";
  20.  
  21.     nuevaCelda = nuevaFila.insertCell(-1);
  22.    
  23.     nuevaCelda.innerHTML = "<td><input type='hidden' size='15' name='unidad_explot[" + posicionCampo + "]' value='<?php echo $unidad ?>'/></td>";
  24.  
  25.     nuevaCelda = nuevaFila.insertCell(-1);
  26.  
  27.     nuevaCelda.innerHTML = "<td><input type='button' id='eliminar' value='Eliminar' onclick='eliminarUsuario(this)' class='btn btn-danger'></td>";
  28.  
  29.  
  30. /*    nuevaCelda = nuevaFila.insertCell(-1);
  31.    
  32.     nuevaCelda.innerHTML = "<td><input type='hidden' size='1' name='cedula[" + posicionCampo + "]' value='<'/></td>";
  33.  
  34.     nuevaCelda = nuevaFila.insertCell(-1);
  35.    
  36.     nuevaCelda.innerHTML = "<td><input type='hidden' size='1' name='estatus[" + posicionCampo + "]' value='En Transito'/></td>";
  37.  
  38.     nuevaCelda = nuevaFila.insertCell(-1);
  39.    
  40.     nuevaCelda.innerHTML = "<td><input type='hidden' size='1' name='lugar[" + posicionCampo + "]' value='No_entregado'/></td>";
  41.  
  42.     nuevaCelda = nuevaFila.insertCell(-1);
  43.    
  44.     nuevaCelda.innerHTML = "<td><input type='hidden' size='1' name='fecha_registro[" + posicionCampo + "]' value=''/></td>";
  45.  
  46.     nuevaCelda = nuevaFila.insertCell(-1);
  47.    
  48.     nuevaCelda.innerHTML = "<td><input type='hidden' size='1' name='fecha_estatus[" + posicionCampo + "]' value=''/></td>";*/
  49.  
  50.     posicionCampo++;
  51.  
  52. }
  53.  
  54.  
  55. function eliminarUsuario(obj) {
  56.  
  57.     var oTr = obj;
  58.  
  59.     while(oTr.nodeName.toLowerCase() != 'tr') {
  60.  
  61.         oTr=oTr.parentNode;
  62.  
  63.     }
  64.  
  65.     var root = oTr.parentNode;
  66.  
  67.     root.removeChild(oTr);
  68.  
  69. }
  #5 (permalink)  
Antiguo 15/07/2015, 05:21
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Agregar datos, y luego guardar

y con este recibes los campos, realiza los arreglos y los guarda en la base de datos:
Código PHP:
Ver original
  1. if($_POST['requisito']=="")
  2. {
  3.     $msg = "El formulario se envio vacio";
  4. }
  5. else {
  6. $requisito = array();
  7. $rif = array();
  8. $unidad_explot = array();
  9.  
  10. foreach($_POST['requisito'] as $key=>$value)
  11.     $requisito[]= $value;
  12.  
  13. foreach($_POST['rif'] as $key=>$value)
  14.     $rif[]= $value;
  15.    
  16. foreach($_POST['unidad_explot'] as $key=>$value)
  17.     $unidad_explot[]= $value;
  18.    
  19. //$conexion= mysql_connect($hostname_seguridad, $username_seguridad, $password_seguridad);
  20. $db = new MySQLi($hostname_seguridad, $username_seguridad, $password_seguridad, $database_seguridad);
  21. //mysql_select_db($database_seguridad, $conexion);
  22.  
  23.  for($i=0; $i<count($requisito); $i++)
  24.  {
  25.  
  26. //mysql_query("INSERT INTO config_requisitos (requisito, rif, unidad_explot) VALUES('$requisito[$i]' , '$rif[$i]' , '$unidad_explot[$i]')",$conexion)or die(mysql_error());
  27. $result = $db->query("INSERT INTO config_requisitos (requisito, rif, unidad_explot) VALUES('$requisito[$i]' , '$rif[$i]' , '$unidad_explot[$i]')");
  28. if($result){
  29.    
  30.     $msg ="Los datos se han ingresado correctamente";
  31. }
  32. else{
  33.     $msg = "Error al ingresar los datos";
  34. }
  35.  
  36.  }
  37. }
  #6 (permalink)  
Antiguo 15/07/2015, 05:22
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Agregar datos, y luego guardar

ejemplo de la tabla:
Código HTML:
Ver original
  1. <form action="exito_carga_requi.php" method="POST" enctype="multipart/form-data"><table id="tablatracking">
  2.         <tbody>
  3.          <tr>
  4.                 <td align="left"><input onclick="agregarUsuario()" type="button" value="Agregar Requisito" id="boton_agregar" class="btn btn-success"></td>
  5.           </tr>
  6.             <tr>
  7.               <td width="100" id="titulo">Requisito</td>
  8.               <td width="50"></td>
  9.                 <td width="33"></td>
  10.                 <td width="33"></td>
  11.             </tr>
  12.         </tbody>
  13.     </table>
  14.     <input type="submit" value="Registrar" id="boton_enviar" class="btn btn-warning" />
  15.   </form>
  #7 (permalink)  
Antiguo 15/07/2015, 14:19
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Agregar datos, y luego guardar

Muchas gracias, desde que pueda lo pondré en práctica, con eso solucionaré muchos problemas.

Muchas gracias de nuevo, de verdad, un saludo.

Etiquetas: formulario, tabla
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 20:52.