【问题标题】:How to display the selected datepicker value from the 1st page onto the 2nd page datepicker如何将选择的日期选择器值从第一页显示到第二页日期选择器
【发布时间】:2019-09-03 06:41:12
【问题描述】:

我正在开发一个酒店预订网站。我在主页上有入住、退房、成人人数、儿童人数的基本表格。当用户输入这些详细信息并单击“立即预订”时,将加载具有更多输入字段的另一个页面(预订页面)。在此页面上,我想显示上一页中选择的值。我可以显示下拉值,但无法将上一页的日期选择器值显示到此页面的日期选择器字段中。 如何让日期选择器值显示到第二页日期选择器字段? 感谢您的帮助。

我尝试在日期选择器的输入字段中发布值,但没有成功。 我可以将第一页的日期选择器值作为文本发布,但不能在日期选择器字段中。

这是主页上的日期选择器输入字段

<div class="booking_dropdown">
    <input type="text" class="datepicker booking_input booking_input_a booking_in" placeholder="Check in" required="required" name="checkin">
</div>
<div class="booking_dropdown">
    <input type="text" class="datepicker booking_input booking_input_a booking_out" placeholder="Check out" required="required" name="checkout">
</div>

这是第二页日期选择器输入字段

<div class="booking_dropdown">
    <input type="text" id="checkin" class="datepicker booking_input booking_input_a booking_in" placeholder="Check in" required="required" name="checkin" value="<?php echo date_format(date_create($_POST['checkin']),"d/m/Y");?>">
</div>
<div class="booking_dropdown">
<input type="text" id="checkout" class="datepicker booking_input booking_input_a booking_out" placeholder="Check out" required="required" name="checkout" value="<?php echo date_format(date_create($_POST['checkout']),"d/m/Y");?>">
</div>

这是第二页日期选择器代码 - 已更新

function initDatePicker()
{
   if($('.datepicker').length)
   {
      $("#checkin").datepicker({
         minDate: 0,
         onSelect: function (date) {
            var date2 = $('#checkin').datepicker('getDate');
            date2.setDate(date2.getDate());
            $('#checkout').datepicker('setDate', date2);
            //sets minDate to dt1 date + 1
            $('#checkout').datepicker('option', 'minDate', date2);
         }
      });

      $('#checkout').datepicker({
        onClose: function () {
           var dt1 = $('#checkin').datepicker('getDate');
           var dt2 = $('#checkout').datepicker('getDate');
           //check to prevent a user from entering a date below date of dt1
           if (dt2 <= dt1) {
              var minDate = $('#checkout').datepicker('option', 'minDate');
              $('#checkout').datepicker('setDate', minDate);
           }
        }
     });

   }
}

我希望第一页中选定的日期选择器值显示在第二页日期选择器字段中,但它不显示第一页日期选择器值。 我希望日期格式为 dd/mm/yyyy。

【问题讨论】:

    标签: javascript php html forms jquery-ui-datepicker


    【解决方案1】:

    尝试改变

    <input type="text">
    

    <input type="date">
    

    在两个页面中

    更新:对于 jqueryui

    <input type="text" value="<?php echo date_format(date_create($_POST['checkin']),"Y-m-d");?>">
    

    更新 2:

    <input type="text" id="checkin" class="datepicker booking_input booking_input_a booking_in" name="checkin" value="<?php echo $_REQUEST["checkin"] ?>">
    <input type="text" id="checkout" class="datepicker booking_input booking_input_a booking_in" name="checkout" value="<?php echo $_REQUEST["checkout"] ?>">
    

    【讨论】:

    • 看起来他正在使用 Jquery UI 或者 bootstrap-datepicker。据我所知,它们都要求您使用 jQuery 设置值。您的解决方案可以正常工作,只是没有花哨的设计和功能。
    • 是的。我正在使用 jQuery UI 日期选择器。它要求输入类型是文本。
    • @IvanTyler 你能发布
    • 只是想提一下。我已将 jQuery 插件文件 (jquery.ui.js) 中的日期格式更改为 dd/mm/yy。
    • @CaffeinatedCod3r 一切都好!我删除了 dateformat 并添加了 在价值上,它工作得很好。问题出在我的js上。我在发布的代码上方有一些条件。我删除了它,它现在可以工作了。非常感谢您的帮助!
    【解决方案2】:

    也许当您初始化 jquery-ui-datepicker 时,日期会被替换。

    你可以试试第二页的JavaScript:

    $('#checkin').datepicker("setDate", new Date(&lt;?php echo $_POST['checkin']; ?&gt;) );

    jQuery-UI datepicker default date

    【讨论】:

    • 感谢您的回复。我在问题中添加了我的 datepicker jQuery 代码。当我添加您建议的代码时,第二页显示当前日期,而不是第一页上选择的日期。
    • 使用 dateFormat 选项根据之前的签到后数据格式格式化您的数据。
    • 对不起。我是新手。如何使用 dateFormat 格式化日期?发布日期为 dd/mm/yyyy 格式。我已经更新了第一行js。
    • 日期值要加引号,否则不是合法的JS,即new Date("&lt;?php echo $_POST['checkin']; ?&gt;")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多