javascript - PHP 没有从 $.ajax 获取 POST 数据

标签 javascript php jquery html ajax

我有一个 JavaScript,它在我的日期选择器失焦后运行 POST 方法(我也在常规提交按钮上尝试过)并运行脚本 rent-fetch-pick-up-point.php。 PHP 运行,但是它没有通过 if 语句,因为我的它没有获取 POST 数据。日期选择器绑定(bind)到输入字段 time-period-from

datepickerTo.blur(function(){
  if (selectedDateFrom.length > 0) {

    datepickerFrom.delay(500).queue(function(){

      $.ajax({
        type: "POST",
        url: "include/rent-fetch-pick-up-point.php",
        data: {action: selectedDateFrom},
        success: function(data) {
          $("#pick-up-point-container").html(data);
        }
      });
    });
  }
});

这是 PHP 代码:

if (isset($_POST['time-period-from'])) {
  require '../include/connection.php';

  $dateFrom = $_POST['time-period-from'];
  $sql = "SELECT * FROM order WHERE $dateFrom BETWEEN date_from AND date_to";
  $result = mysqli_query($connection, $sql);
  $numRows = mysqli_num_rows($result);

  echo $sql; // For testing purposes
}

这是 HTML:

  <input type="text" name="time-period-from" id="datepicker-from" class="datepicker"></p>

我也尝试过使用 $.post() 而不是 $.ajax(),但我遇到了同样的问题:

$.post("include/rent-fetch-pick-up-point.php", {name: selectedDateTo}, function(data) {

  $("#pick-up-point-container").text(data)

});

最佳答案

$_POST 的键来自您传递给 data: 选项的对象的键,而不是值最初来自的表单字段的名称.由于您使用了:

data: { action: selectedDateFrom }

值将在 $_POST['action'] 中,而不是 $_POST['time-period-from']。所以你需要使用:

if (isset($_POST['action']))

和:

$dateFrom = $_POST['action'];

或者您可以将 Javascript 更改为:

data: { "time-period-from": selectedDateFrom }

关于javascript - PHP 没有从 $.ajax 获取 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36701140/

相关文章:

PHP 2 数组 - 将两个数组中存在的值合并到一个数组中

javascript - 遍历到距离点击jquery的元素最近的元素

javascript - 如何使用 Javascript 从 URL 插入动态 HTML?

javascript - Facebook如何在不刷新的情况下更新点赞?

javascript - 从外部调用函数内部的 JavaScript 变量

javascript - 将 jquery 条件为 (':checked' ) 转换为 bool 数组

javascript - $request->ajax() 在 ajax 调用时返回 false

php - MYSQL数据库如何修改时区?

javascript - 我怎样才能滚动到#target - 100px?

javascript - jquery - 在异步数据获取后更新 jquery.sparkline