我有以下 Ajax请求:
function send(){
//selected Pictures: some int array
var jsonArray = JSON.stringify(selectedPictures);
var request;
request = $.ajax({
url: "targetPage.php",
type: "POST",
data: {data: jsonArray},
cache: false
});}
我通过
提交href="targetPage.php" onclick="send();"
我想在HTML文件或PHP脚本中访问该数组,并将其包含在HTML中。 当我使用浏览器的开发工具检查HTTP流量时,我发现POST实际上工作正常并且发送了正确的数组数据,但是当我想使用访问数据时:
if(isset($_POST['data'])){
$data = json_decode(stripslashes($_POST['data']));
}
没有任何反应,因为isset返回false。似乎存在某种我缺少的运行时或执行顺序问题。
答案 0 :(得分:2)
问题是您的href,它会让您的浏览器导航到该页面而不发送信息,因此您可以删除它;因为你是通过ajax电话拨打电话。
所以:
<a href="#" onclick="send();"></a>
如果您希望在调用后重定向页面,则应将成功函数添加到ajax调用中:
function send(){
//selected Pictures: some int array
var jsonArray = JSON.stringify(selectedPictures);
var request;
request = $.ajax({
url: "targetPage.php",
type: "POST",
data: {data: jsonArray},
cache: false,
success: function() { location.href = "targetPage.php"; }
});
}
答案 1 :(得分:0)
如果你想发布并重新发送你可以这样做:
<form method="post" action="http://localhost/DLFin/welcome.php" id="my_form">
<input type="hidden" id="name" name="name">
</form>
<强> SCRIPT:强>
function send(){
//selected Pictures: some int array
var jsonArray = JSON.stringify(selectedPictures);
var request;
request = $.ajax({
url: "targetPage.php",
type: "POST",
data: {data: jsonArray},
cache: false,
success: function() { $('#name').val('sajal');
$('#my_form').submit(); }
});
}