无法通过JQuery POST调用访问PHP代码(错误未定义索引)

问题描述 投票:0回答:2

我正在尝试将数据从JS脚本传递到PHP文件。我正在使用JQuery帖子,如下所示:

   const Url2 = 'MainPage2.php?action=updatePurchaseToDB';
   const data = {
       action: "updatePurchaseToDB",
       name: "test name"
   }


   //takes 3 arg, url, data to send, call back function, data in callback holds the page reqeusted in data

   $.post(Url2,data, function(data, status){
       console.log(`status is ${status} data : ${data}`);
       alert("PHP Retrned form server:  Status " + status + " Data: " + data);
   });

    }

这似乎可以正确执行,因为状态返回为成功。我希望达到的PHP代码:

if ($_POST['action'] == 'updatePurchaseToDB'){


      echo "<script>$(`#purchaseButton`).html('Test- received data');</script>";
    }

引发以下错误:未定义索引:操作

不确定为什么在URL和数据参数中声明action

如果我通过Ajax调用尝试相同:

$.ajax({
        url: 'MainPage2.php?action=updatePurchaseToDB',
        type: 'POST',
        success: function(data)
        {
          console.log(data);
        }

      });

同样,我从服务器收到成功的响应,并且出现相同的错误。我读了this post,但我一定读错了。

我知道有类似问题的答案分配,但是我很难找到适合自己情况的答案。

感谢输入。

php jquery post
2个回答
1
投票

$_POST的内容是HTTP标头后的数据行。

但是您的action=updatePurchaseToDB是请求网址的一部分。您应该通过$_GET["updatePurchaseToDB"]访问它。

还有一个问题

echo "<script>$(`#purchaseButton`).html('Test- received data');</script>";

不是应该

echo "<script>$('#purchaseButton').html('Test- received data');</script>";

0
投票

在第一种情况下,即使参数在url中或作为数据参数,您都以GET的形式调用,所以Post索引不可用。

在第二种情况下,您正在发布,但是参数'updatePurchaseToDB'是GET参数,您没有向PHP文件发送任何数据。再次,索引将不可用。

尝试:

const data = {
action: "updatePurchaseToDB",
    name: "test name"
}
$.ajax({
    url: 'MainPage2.php?action=updatePurchaseToDB',
    type: 'POST',
    data: data,
    success: function(data){
        console.log(data);
    }
});

enter image description hereenter image description here

© www.soinside.com 2019 - 2024. All rights reserved.