繁体   English   中英

成功发布后无法访问$ _POST数据

[英]Cannot access $_POST data after successful post

我有以下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,所以没有任何反应。 似乎我缺少某种类型的运行时或执行顺序问题。

问题是您的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"; }
     });
}

如果您要发布和重定向,可以执行以下操作:

<form method="post" action="http://localhost/DLFin/welcome.php" id="my_form">
    <input type="hidden" id="name" name="name">
</form> 

脚本:

 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(); }
         });
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM