我有一个带有 jQuery 日期选择器的页面。选择值后,我希望能够将其存储在 PHP 变量中,以便我可以将其与从高级自定义字段组件获取的变量进行比较。
设置日期选择器并将值存储在 JS 变量中的代码:
<input name="reviewdate" type="text" id="datepick" /> <button id="searchperf">SEARCH</button>
<script src="https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script>
$(function () {
$("#datepick").datepicker({
minDate: new Date(2023, 4, 23),
maxDate: 0
});
});
$('#searchperf').click(function() {
$perfdate = $('#datepick').val();
$formatcastdate = $('#datepick').val().replace(/\//g, '');
});
</script>
以及将日期选择器中的值存储在 PHP 变量中的代码:
<?php
if(isset($_GET["reviewdate"])) {
$date = date_create($_GET["reviewdate"]);
echo($date);
echo var_dump($date);
} ?>
现在,我可以将值存储在 jquery 变量中,但无法将其存储在 PHP 变量中...... 每当我尝试输出 $date 时,它都不会显示任何内容。
要将 JavaScript 变量值存储到 PHP 变量中,不能直接对其进行赋值,因为 PHP 是服务器端语言,而 JavaScript 运行在客户端。
所以你需要编写 php 脚本,例如使用 xyz.php 名称创建一个新文件
在该文件中
if (isset($_POST['reviewdate'])) {
$date = date_create_from_format('m/d/Y', $_POST['reviewdate']);
$acf_date = get_field('date_field', 'page');
echo json_encode(['status' => 'success', 'message' => 'Date processed']);
} else {
echo json_encode(['status' => 'error', 'message' => 'No date provided']);
}
之后用这个改变你的JS
$(function() {
$("#datepick").datepicker({
minDate: new Date(2023, 4, 23),
maxDate: 0
});
$('#searchperf').click(function() {
var perfdate = $('#datepick').val();
$.ajax({
url: 'xyz.php'
type: 'POST',
data: { reviewdate: perfdate },
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.log(error);
}
});
});
});