【问题标题】:POST to PHP with success but PHP code not executingPOST 到 PHP 成功但 PHP 代码未执行
【发布时间】:2020-04-27 18:59:19
【问题描述】:

我正在使用 JQuery post 方法将数据从外部 JS 脚本发送到 PHP 脚本。

const Url2 = 'MainPage2.php?action=updatePurchaseToDB';
   const data = {
       name: "test name"
   }
   //takes 3 arg, url, data to sedn, call back function, data in callback holds the page reqeusted in data
   $.post(Url2,data, function(data, status){
       console.log('${data} and status is ${status}');
       alert("PHP Retrned form server:  Status " + status);
   });

这是 MainPage2.php 中的 PHP 代码:

if ($_POST['action'] == 'updatePurchaseToDB'){
    echo "<script>console.log('UPDATE PURCHASE CALLED!');</script>";
    echo "PHP CALLED AS PURCHASE BUTTON PRESSED";
  }

回调函数返回 成功 消息,但我看不到 PHP 代码已执行的任何证据,即控制台没有打印任何内容。

我对 PHP 脚本的调用中是否缺少某些内容?

【问题讨论】:

    标签: php jquery post


    【解决方案1】:

    由于操作在 URL 中,您需要使用$_GET['action'] 访问它,而不是$_POST['action']。如果要在POST 数据中添加,则需要将其添加到data 对象中:

    const data = {
        action: "updatePurchaseToDB",
        name: "test name"
    }
    

    您的console.log() 调用未正确替换变量。您需要使用反引号来创建模板文字。

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

    【讨论】:

    • 谢谢,试过了,但仍然没有打印到控制台
    • 控制台有错误吗?如果您检查“网络”选项卡,您是否看到它发送参数并接收响应?首先你是如何调用代码的?
    • 没有错误,控制台打印来自回调的命令;成功状态和数据;返回的数据是网页内容
    • 我以为你说什么都没有打印到控制台。
    • 我指的是我试图向其发送数据的 PHP 代码中的打印到控制台命令,抱歉应该更清楚
    猜你喜欢
    • 2012-12-29
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多