从AJAX保存多个数组
我已成功使用array_combine
和foreach(参见示例)成功保存了2个数组,但现在
我有20多个动态内容数组,我需要迭代到我的查询语句中。
成功的AJAX示例
var setTitle = new Array();
$('form input[name="setTitle[]"]').each(function () {
setTitle.push($(this).val());
});
var setUnitId = new Array();
$('form input[name="setUnitId[]"]').each(function () {
setUnitId.push($(this).val());
});
$.ajax({
type: 'POST',
url: 'form_process2_wkout.php',
data: {
setTitle:setTitle,
setUnitId:setUnitId,
// ...and so on...//
},
dataType: 'json',
cache: false,
async: false
PHP(form_process2_wkout.php)正在接收每个$ _POST ... 我把它们组合成一个阵列......
$setArray = array(
$x_set_title,
$x_set_unit_id,
// ...and so on... //
);
我已经将var_dump这个数组用于测试...
$data= var_dump($setArray);
echo $data;
它产生以下内容:
array(24) {
[0]=>
array(3) {
[0]=>
string(9) "Ab Roller"
[1]=>
string(16) "Slide Back Lunge"
[2]=>
string(10) "Jump Squat"
}
[1]=>
array(3) {
[0]=>
string(1) "2"
[1]=>
string(3) "879"
[2]=>
string(3) "872"
}
...and so on...
}
不太确定如何写foreach
来迭代这些项目:
foreach($setArray as $id => $key) {
$set_title = mysqli_real_escape_string($dbc, $_POST['setTitle']);
$set_unit_id = mysqli_real_escape_string($dbc, $_POST['setUnitId']);
//...and so on.../
}
这样我就可以在以下查询中使用它们:
$sql= "INSERT INTO ".$table1." (`goal_unit_id`,`goal_title`,...and so on...)
VALUES ";
$sql.="('".$set_unit_id."','".$set_title."',...and so on...)";
我引用了许多其他方法,但没有运气:
PHP: Iterate over multiple arrays and build SQL INSERT query
答案 0 :(得分:0)
使用全局或类变量来实现如下所示,请参考PHP中的arra_map,array_merge api'
<?php
$x_set_title = array('Ab Roller', 'Slide Back Lunge', 'Jump Squat');
$x_set_unit_id = array('2', '879', '872');
function escape_str($title, $id)
{
$dbc = $GLOBALS['dbc'];
$title = mysqli_real_escape_string($dbc, $title);
$id = mysqli_real_escape_string($dbc, $id);
return (array($title, $id));
}
$setArray = array_map('escape_str', $x_set_title,$x_set_unit_id);
print_r($setArray);
foreach($setArray as $oneArray)
{
echo $oneArray[0].' '.$oneArray[1];
}