Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/10/2016, 16:57
slikp
 
Fecha de Ingreso: marzo-2013
Mensajes: 32
Antigüedad: 11 años, 1 mes
Puntos: 0
Php Insertar Objetos de Arrays en Tabla de Mysql

- Buenas a todos tengo problema con los Arrays espero alguien pueda iluminarme... Bueno tengo un formulario donde sus campos se cargan dinamicamente ( los Tr, Td e Input) insertando en los input resultados obtenidos de una BD.



- Hay todo bien, pero yo estoy intentando hacer una especie de registro de compra ya sea para luego imprimir nuevamente el Ticket o comprobante de compra, para ver el registro en pantalla de las compras del dia o para exportarlo a Excel. Donde esta mi problema? pues que estoy intentando guardar todos esos datos en la BD y no he podido lograrlo.

- Los avances que logre fueron los siguientes cambien un poco la estructura de la tabla he inserte todo en un formulario quedando como la imagen anterior y en codigo asi.

Código HTML:
Ver original
  1. <tr>
  2.         <?php
  3.           foreach ((array)$pro as $fila):
  4.         ?> 
  5.             <td id="ver"></td>
  6.             <td>1</td>
  7.             <td><input class="cant" type="number" min="1" name="cant[]"></td>
  8.             <td><input type="text" class="product" name="product[]" value="<?php echo $fila['producto'];?>" style="border: none;text-align: center"></td>
  9.             <td class="marc"><input type="text" name="marc[]" value="<?php echo $fila['marca'];?>" style="border: none;text-align: center"></td>
  10.             <td class="preci"><input type="text" name="preci[]" class="precio" value="<?php echo $fila['precio'];?>" style="border: none;text-align: center"></td>
  11.             <td ><input type="text" name="importe[]" class="importe" value="" style="border: none;text-align: center"></td>
  12.             <td><button class="btn btn-danger fa fa-times drop" type="reset"></button></td>
  13.             <td><input class="subtotal" type="hidden" name="subtotal[]" value="0"></td>
  14.         <?php
  15.          endforeach;
  16.         ?>
  17.     </tr>


- Eso se inserta aqui a traves de una funcion en Jquery.
Código HTML:
Ver original
  1. <form id="form_form">
  2.                                 <table class="table text-center table-hover table-reflow">
  3.                                   <thead>
  4.                                     <tr>
  5.                                     <th class="text-center"></th>
  6.                                       <th class="text-center">ITEM</th>
  7.                                       <th class="text-center">Cant.</th>
  8.                                       <th class="text-center">Producto</th>
  9.                                       <th class="text-center">Marca</th>
  10.                                       <th class="text-center">Precio</th>
  11.                                       <th class="text-center">Importe</th>
  12.                                       <th class="text-center">Trash</th>
  13.                                     </tr>
  14.                                   </thead>
  15.                                     <tbody id="resulsetp">
  16.                                       <!--
  17.                                         SE SUPONE QUE AQUI VAN A CAER LOS DATOS DE UN FOREACH TRAIDOS DESDE UN AJAX
  18.                                         Y TODO LO DEMAS EN CADA TD PARA ASIGNAR LOS DATOS CORRESPONDIENTES
  19.                                         EN CADA ITERACION Y MAS O MENOS SE VERA ASI
  20.                                       -->
  21.                                     </tbody>
  22.                                 </table>
  23.                               </div>
  24.                             </form>


- Ok lo hice de ese modo porque vi unos ejemplos de .serialize() pero no pude encontrar alguno en el cual se creen campos dinamicos o como es la recepcion de los datos dinamicos en Php. Entonces del lado de php he intentado recibir estos datos de muchas formas pero solo logro obtener el primer elemento del array o serialize los envio a traves de un Ajax asi.

Código Javascript:
Ver original
  1. $('.genera').click(function(e){
  2.                 e.preventDefault();
  3.                 var selectic = $('.selectic').val();
  4.                 var selectpa = $('.selectpa').val();
  5.                 var serie_m = $('.serie-m').val();
  6.  
  7.                 if (selectic == '0' || selectpa == '0' || serie_m === '') {
  8.                     alert(" Por Favor Complete El Campo Faltante.");
  9.                 } else
  10.                     {  
  11.                         var dataString = $('#form_form').serialize();
  12.                        
  13.                         $.ajax({
  14.                             url: 'insprmtick.php',  
  15.                             type: 'POST',
  16.                             data: dataString,
  17.                             success: function(data){
  18.                                 if (data!="") {
  19.                                     $('#retick').hide().html(data).fadeToggle();
  20.                                 }
  21.                             },
  22.                         });
  23.                     }        
  24.             });


- Y estoy tratando de procesarlos con Php asi, intente primero imprimirlos a ver como se vea la informacion y obtuve lo siguiente.

Código PHP:
Ver original
  1. foreach($_POST as $posicion=>$valor) {
  2.      echo "<pre>";
  3.       print_r("El " . $posicion . " es: " . $valor[1]);
  4.     echo "</pre>";
  5.    }


- Eso me da esto. Osea solo el ultimo valor.



- Intente esto pero no quiero me lo exprese de esa forma.
Código PHP:
Ver original
  1. echo "<pre>";
  2.       print_r($_POST);
  3.     echo "</pre>";



- Ahora bien ni siquiera he intentado insertarlo en la BD porque si ni puedo imprimirlos como yo quiero no tiene caso tratar de insertarlos. Pero los Insert que suelo usar son de este tipo.

Código PHP:
Ver original
  1. public function inswinner($numeral, $interes)
  2.   {
  3.     $model = new Stock();
  4.     $conexion = $model->conec();
  5.     $sql = "INSERT INTO ganador VALUES('null','".$_POST['x']."','".$_POST['z']."','".$numeral."','".$interes."')";
  6.     $consulta = $conexion->prepare($sql);
  7.     $consulta->execute();
  8.   }


- Se agradece infinitimanete todo el conocimiento que puedan aprotarme. Saludos.