我有一个从我的AJAX代码调用的foreach循环。看起来,foreach循环正在被跳过。我最终希望做到这一点,以便foreach循环将使用数组中的每个值执行查询,但我首先尝试测试foreach循环的工作方式(它没有)。我收到的警报(来自我的AJAX)只是原始数组,而不是添加项目的数组。如何使用带有AJAX调用的foreach循环?
PHP:
$data = array();
if(isset($_POST['myArray']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']){
$data = $_POST['myArray'];
foreach ($data as $item) {
$data[] = $item;
}
echo json_encode($data);
die();
}
AJAX:
$(document).ready(function(){
$('#btn-addkegs').click(function() {
var arr = kegs;
var myArray = JSON.stringify(arr);
$.ajax({
url: "addkegs.php",
method: "POST",
dataType: "json",
data: {myArray: myArray},
success: function (result) {
alert("Your kegs have been added! These include: " + result);
textarea.value = "";
kegs = [];
}
});
});
});
至于线var arr = kegs;
,阵列 '小桶' 的值通过输入字段和其它AJAX设置,但所有的工作精细。我认为我的问题在于我的PHP代码。
你的循环似乎试图修改它迭代的同一个变量。运行时'$ data'的实际值是多少? – David
@David基于我测试的用户输入,$ data = [“1”,“2”,“3”]和我接收的警报的值返回相同的值[“1”,“2”,“ 3“]。 – jh95
如果您在AJAX响应后看到警报中的值,那么实际的问题是什么? – David