【问题标题】:Can't reach PHP code from a JQuery POST Call (Error Undefined Index)无法通过 JQuery POST 调用访问 PHP 代码(错误未定义索引)
【发布时间】:2020-04-28 21:49:00
【问题描述】:

我正在尝试将数据从 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


    【解决方案1】:

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

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

    还有一个问题

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

    不应该是这样的

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

    【讨论】:

      【解决方案2】:

      第一种情况,即使参数在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);
          }
      });
      

      【讨论】:

      • 谢谢,但没有任何区别。相同的“索引操作”错误。这个想法是将一个数组发送到 PHP 以将内容处理到数据库中。要检查我是否已成功到达 PHP 代码,我希望 PHP 通过回显脚本调用来打印到 DOM 元素,我在这里遗漏了什么吗?
      • 我刚刚在这里测试过,它运行良好,没有任何错误。
      • PHP 执行并输出回显?在我的设置中,JS 脚本是 PHP 的外部文件,我想知道你的设置有什么不同
      • 我可以看看你的 PHP 吗?
      • 最后在pastebin上,在
      猜你喜欢
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      • 2011-02-21
      相关资源
      最近更新 更多