Ajax发送响应成功但PHP没有收到数据

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

我有一个购物车页面和按钮

`<button class="purchase-button" data-courses-id="<?php echo $coursesID; ?>" onclick="Payment()">
</button>`

所以当用户点击它时,付款表格将显示,我想获取要显示的产品的ID。 这是js文件:

`
function Payment() {
  document.querySelector(".body-payment").style.display = "flex";
  document.body.style.overflow = "hidden";

  document.querySelectorAll(".purchase-button").forEach((button) => {
    button.addEventListener("click", (event) => {
      const courseID = button.getAttribute("data-courses-id");
      const data = { courseID: courseID };
      $.post("payment.php", data)
        .done(function (response) {
          console.log("Payment data sent successfully:", data);
        })
        .fail(function (error) {
          console.error("Error sending payment data:", error);
        });
    });
  });
}

`

ajax 工作正常,它发送数据,但 PHP 不发送数据:

`
if (isset($_POST['courseID'])) {}
else echo "Error";
`

我尝试打印服务器并发布,例如:

`
print_r($POST);
`

我得到的输出是数组空。

我猜我没有表单标签,也许按钮被点击了两次。请帮助我!

javascript php ajax button onclick
1个回答
0
投票

你可以试试这个方法

  • 当 DOM 准备好时添加事件监听器,而不是等待调用“付款”函数,而是将事件监听器移到“付款”函数之外。
  • 直接在事件监听器内触发“支付”功能
© www.soinside.com 2019 - 2024. All rights reserved.