Cita:
Iniciado por Triby
Bueno, parece que el copy/paste sin analizar sigue siendo una mala opción, porque me equivoqué en la sugerencia para la línea del JS y la forma correcta es:
Código Javascript
:
Ver originalstrHtml5 += '<input type="hidden" id="nombreDelCampo_' + oId +'" name="nombreDelCampo[]" value="' + oId + '" /></td>';
Con eso y el PHP "original" debería ser suficiente:
Código PHP:
Ver original// Debe ser <= porque el contador lo inicias en cero, de lo contrario omitiría el último elemento
for($i=0; $i<=$numRows; $i++) {
$sql_ins2 = mysql_query("INSERT INTO contactos (id_posada, tipo_contacto, persona_contacto, telefonos, correo_contacto) VALUES ('$id_posada', '".$_POST['selTipo_contacto'][$i]."', '".$_POST['txtPersona_contacto'][$i]."', '".$_POST['txtTelefonos'][$i]."', '".$_POST['txtCorreo_contacto'][$i]."')") or
die ("Error en Insert : ".mysql_error()); }
disculpa amigo podrias ayudarme yo tengo un codigo diferente y al igual que a kimmy solo me guarda 1 solo dato, mis codigos son los siguientes:
codigo del formulario
Código PHP:
Ver original<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><select id="empleado" name="idemp" style="width:50px;"></select><span style="float:left;padding:8px 0px 8px 8px;">
Nombre del Empleado:</span><select id="no_empl" style="width:90px;"></select><span style="float:left;padding:8px 0px 8px 8px;">
Area del Solicitante:</span><select 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>
codigo del agregar campos
Código Javascript
:
Ver original$(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();
}
y por ultimo donde guardo
Código PHP:
Ver original<?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];
//print_r($_POST);
$query1 ="INSERT INTO detalle(id_pedidos, id_producto, producto, marca, cantidad, fecha_solicitud)
VALUES('$idemp', '$clave', '$producto', '$marca', '$cantidad', '$fecha_sol')";
if($query1){
header("Location: pedidos.php"); }else{
echo '<script> alert("El Pedido No Se Envio");</script>';
echo '<script> window.location=" pedidos.php"; </script>';
}
}
?>
espero puedas ayudare ya que seria de gran ayuda