将 jQuery Datepicker 的值与高级自定义字段字段的值进行比较

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

我有一个带有 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 时,它都不会显示任何内容。

php wordpress jquery-ui advanced-custom-fields jquery-ui-datepicker
1个回答
0
投票

要将 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);
            }
        });
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.