【发布时间】:2016-11-30 02:18:39
【问题描述】:
我有一个从我的 AJAX 代码调用的 foreach 循环。似乎 foreach 循环正在被跳过。我最终希望这样做,以便 foreach 循环将使用数组中的每个值执行查询,但我首先尝试测试 foreach 循环是否有效(它没有)。我收到的警报(来自我的 AJAX)只是原始数组,而不是添加项目的那个。
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; 行,数组'kegs' 的值是通过输入字段和其他AJAX 设置的,但一切正常。我认为我的问题在于我的 PHP 代码。
【问题讨论】:
-
您的循环似乎试图修改它所迭代的同一个变量。
$data在运行时的实际值是多少? -
@David 根据我测试的用户输入, $data = ["1","2","3"] 的值和我收到的警报返回相同的值 ["1 ","2","3"] .
-
如果您在 AJAX 响应后看到警报中的值,那么实际问题是什么?
-
在 PHP 代码中,
$data是 array 还是 看起来像 数组的 string? AJAX 响应的原始结果是什么,而不是警报中的内容? -
@David 如何检查原始结果? (我没有经验)