Buenos días,
Intento insertar varios registros (n registros) a una BD mediante ajax, no puedo definir la cantidad porque depende de la consulta.
Envío mediante ajax via POST los registros que recibo a un archivo PHP, pero no consigo insertarlos.
Registros recibidos
Código PHP:
Ver original
echo '<div class="subcontainer-zones['.$row_rates['id'].']" id="'.$row_rates['id'].'">
<input class="span2" type="text" name="id_zone_type[]" id="id_zone_type[]" value="'.$_POST['zone'].'" />
<input class="span2" type="text" name="id_carrier[]" id="id_carrier[]" value="'.$_POST['carrier'].'">
<input class="span2" type="text" name="id_rate[]" id="id_rate[]" value="'.$idrate.'">
<input class="span3" type="text" name="id_locate[]" id="id_locate[]" value="'.$row_rates['name'].'">
<input type="button" class="delZoneValue" id="'.$row_rates['id'].'" value="Eliminar"/>
</div>';
}
Así los recojo
Código Javascript
:
Ver original$('body').on('click','#definir',function(){
var $carrier = $('#carrier').val(),
$zone = $('#zone').val(),
$rate = $('#rate').val();
$.loader();
$.ajax({
type:'POST',
url:'create_zones.php',
complete:function(){
$.loader.hide();
},
data:{carrier:$carrier, zone:$zone, rate:$rate},
success: function(data){
$('#results_zones').html(data);
}
});
});
Formulario para envíar
Código HTML:
Ver original<form method="post" action="" id="form_zone">
<div class="options-zones" id="results_zones"></div> <button id="enviar" name="enviar" type="submit">Guardar
</button>
Así los envío
Código Javascript
:
Ver original$(document).ready(function() {
$('#enviar').click(function(){
var dataString = $('#form_zone').serialize();
alert('Datos serializados: '+dataString);
$.loader();
$.ajax({
type: "POST",
url: "add_zone.php",
complete:function(){
$.loader.hide();
},
data: dataString,
success: function(data) {
}
});
});
});
Alert que muestra los registros serializados
Código HTML:
Ver originalDatos serializados: id_zone_type%5B%5D=1&id_carrier%5B%5D=1&id_rate%5B%5D=1&id_locate%5B%5D=Espa%C3%B1a&id_zone_type%5B%5D=1&id_carrier%5B%5D=1&id_rate%5B%5D=1&id_locate%5B%5D=Portugal&id_zone_type%5B%5D=1&id_carrier%5B%5D=1&id_rate%5B%5D=1&id_locate%5B%5D=Andorra
Archivo PHP que los recibe
Código PHP:
Ver original
foreach($_POST['id_zone_type'] as $key=>$value)
$z[]= $value;
foreach($_POST['id_carrier'] as $key=>$value)
$c[]= $value;
foreach($_POST['id_rate'] as $key=>$value)
$r[]= $value;
foreach($_POST['id_locate'] as $key=>$value)
$l[]= $value;
for($i=0; $i<count($z); $i++) {
$record = 'id_zone_type, id_carrier, id_zone_rate, zone_location';
$val = "'".$z[$i]."',";
$val .= "'".$c[$i]."',";
$val .= "'".$r[$i]."',";
$val .= "'".str_db($l[$i])."'";
$sql = " insert into ".$table_prefix."carriers_zones (";
$sql .= $record;
$sql .= ") VALUES (";
$sql .= $val;
$sql .= ")";
execute($sql);
//execute('insert into '.$table_prefix.'carriers_zones VALUES ('.$z[$i].', '.$c[$i].', '.$r[$i].', "'.$l[$i].'")');
}
Pero no consigo insertarlos. ¿Alguien puede prestarme algo de ayuda?
Un saludo y gracias.