将 jQuery Datepicker 的值与“高级自定义字段”字段的值进行比较 [duplicate]

Compare value of jQuery Datepicker with the value of an Advanced Custom Fields field [duplicate]

提问人:JMA 提问时间:11/10/2023 更新时间:11/10/2023 访问量:25

问:

我有一个带有jQuery Datepicker的页面。选择值后,我希望能够将其存储在 PHP 变量中,以便将其与从高级自定义字段组件获取的变量进行比较。

设置我的 Datepicker 并将值存储在 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>

以及将 datepicker 中的值存储在 PHP 变量中的代码:

<?php 
if(isset($_GET["reviewdate"])) { 
$date = date_create($_GET["reviewdate"]);
echo($date);
echo var_dump($date);
} ?>    

现在,我可以将值存储在jquery变量中,但不能将其存储在PHP变量中... 每当我尝试输出$date时,它都不会显示任何内容。

php wordpress 高级自定义字段 jquery-ui-datepicker

评论


答:

0赞 Jenny 11/10/2023 #1

要将 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);
            }
        });
    });
});