No guarda varios registros
Publicado por Eric (4 intervenciones) el 06/04/2016 17:15:08
hola muy buenas, soy nuevo en este foro y me gustaría preguntarles si me pueden ayudar en un problema que tengo, mi problema es que tengo un formulario donde al darle click a un botón me agregue inputs para guardar mas de 1 registro a la vez estuve buscando y me mostraron un ejemplo lo modifique conforme a los campos de mi base de datos y quedo de la siguiente manera
y para que me agregara los inputs necesarios para guardar mas de un registro es este
y para guardar los registros utilizo este
pero cuando guando le doy click en enviar solamente me guarda 1 registro y lo que quiero es guardar mas de 1, no se mucho de php lo que eh echo son propuestas que me habían dicho, espero que me puedan ayudar a solucionarlo, espero sus respuestas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<div id="stylized" class="myform" style="margin:40px auto;">
<form id="form" name="form" method="POST" action="insertar_registro.php">
<div id="material_pedido"></div>
<label>Clave del Empleado:</label><input type="text" id="empleado" name="idemp" style="width:50px;"></select><span style="float:left;padding:8px 0px 8px 8px;">
Nombre del Empleado:</span><input type="text" id="no_empl" style="width:90px;"></select><span style="float:left;padding:8px 0px 8px 8px;">
Area del Solicitante:</span><input type="text" id="area" style="width:110px;"></select><span style="float:left;padding:8px 0px 8px 8px;">
Fecha de la Solicitud:</span><?php $fecha= date("Y-m-d"); ?><!--=== sirve para obtener la fecha del equipo automaticamente ===-->
<input type="date" name='fecha_sol[]' required value="<?php echo $fecha; ?>" readonly style="width:119px;"/><span style="float:left;padding:8px 0px 8px 8px;"></span>
<left><h1>Articulo a pedir</h1>
<p>Puede añadir mas de 1 pedido si asi lo decea</p></left>
<div id="div_1">
<span style="float:left;padding:9px 0px 0px 0px;">
<label>Clave producto:</span></label><input type="text" id="clave1" name="clave[]" style="width:50px;"/><span style="float:left;padding:9px 0px 0px 0px;">
Producto:</span><input type="text" id="prod" placeholder="Nombre producto" name="producto[]" style="width:110px;"/><span style="float:left;padding:9px 0px 0px 0px;">
Marca:</span><input type="text" id="marca" placeholder="Marca producto" name="marca[]" style="width: 100px;"/><span style="float:left;padding:9px 0px 0px 0px;">
Cantidad:</span><input type="number" name="cantidad[]" min='1' max='100'style="width:30px;"/><input class="bt_plus" id="1" type="button" value="+" /><div class="error_form"></div>
</div>
<br>
<br>
<button type="submit" name="submit" class="boton">Enviar</button>
</form>
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$(document).ready(function(){
$(".bt_plus").each(function (el){
$(this).bind("click",addField);
});
});
function addField(){
//el id del elemento div qutandole la palabra "div_" de delante. para asi aumentar el numero.
var clickID = parseInt($(this).parent('div').attr('id').replace('div_',''));
//Se genera el nuevo id
var newID = (clickID+1);
//Se crea un clon del elemento div que contiene los campos de texto
$newClone = $('#div_'+clickID).clone(true);
//Se le asigna el nuevo numero id
$newClone.attr("id",'div_'+newID);
//se le asigna nuevo id al primer campo input dentro del div y le borro cualquier valor que tenga, asi no copia lo ultimo que hayas escrito.
//(igual que antes no es necesario tener un id)
$newClone.children("input").eq(0).attr("id",'clave'+newID).val('');
//Se borra el valor del segundo input(campo de cantidad)
$newClone.children("input").eq(1).val('');
//Se asigna el nuevo id al boton
$newClone.children("input").eq(4).attr("id",newID)
//Se inserta el div clonado y modificado despues del div original
$newClone.insertAfter($('#div_'+clickID));
//Se cambia el signo "+" por el signo"-" y se quita el evento addfield
$("#"+clickID).val('-').unbind("click",addField);
//Se cambia el signo del evento delRow para que borre la fila en caso de hacer click
$("#"+clickID).bind("click",delRow);
}
function delRow(){
//Esta funcion destruye el elemento actual una vez echo el click
$(this).parent('div').remove();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
include("php/conexion.php");
$cuenta = count($_POST['clave']); /*esto fue lo que hice, pero me sigue guardando el primer campo y los otros 2 que agrego no*/
$cuenta = count($_POST['idemp']);
$cuenta = count($_POST['producto']);
$cuenta = count($_POST['marca']);
$cuenta = count($_POST['cantidad']);
$cuenta = count($_POST['fecha_sol']);
for ($i=0; $i <$cuenta; $i++) {
$idemp = $_POST['idemp'][$i];
$clave = $_POST['clave'][$i];
$producto = $_POST['producto'][$i];
$marca = $_POST['marca'][$i];
$cantidad = $_POST['cantidad'][$i];
$fecha_sol = $_POST['fecha_sol'][$i];
$query1 ="INSERT INTO detalle(id_pedidos, id_producto, producto, marca, cantidad, fecha_solicitud)
VALUES('$idemp', '$clave', '$producto', '$marca', '$cantidad', '$fecha_sol')";
$resultado=mysqli_query($conexion, $query1);
if($query1){
header("Location: pedidos.php");
}else{
echo '<script> alert("El Pedido No Se Envio");</script>';
echo '<script> window.location=" pedidos.php"; </script>';
}
}
?>
Valora esta pregunta
0