我想使用AJAX将数组从HTML站点传递到PHP脚本
JS
function selectPictures() {
//selected Pictures is my JS array
var jsonArray = JSON.stringify(selectedPictures);
var request;
request = $.ajax({
url: "selectedPictures.php",
type: "POST",
data: {
data: jsonArray
},
cache: false
success: function () {
alert('OK');
}
});
}
HTML
href="selectedPictures.php" onclick="selectPictures();"
PHP
if (isset($_POST['data'])) {
$data = json_decode(stripslashes($_POST['data']));
foreach($data as $d) {
echo $d;
}
}
实际上我想将数据发送到另一个HTML页面,然后包含PHP脚本,但我不明白为什么这个例子甚至不起作用。 $_POST['data']
未设置。
更新 好吧,Ajax帖子实际上正在工作,因为我看到HTTP请求成功但是:我无法立即访问变量。我需要立即访问传递的数组的值来执行另一个PHP脚本。当我想这样做时,我得到一个未定义的索引错误。同样在执行isset函数时,它返回false(尽管HTTP请求成功)。
答案 0 :(得分:3)
<强> HTML 强>
<a href="#" id="selectPictures">click</a>
<强> JS 强>
$(function(){
$('#selectPictures').click(function(){
var jsonArray = JSON.stringify(selectedPictures);
var request = $.ajax({
url: "selectedPictures.php",
type: "POST",
data: {data: jsonArray},
cache: false,
success: function(data){alert(data);}
});
});
});
在chrome中使用f12查看错误,忘记在“cache:false”之后添加逗号