我有一个 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/