【问题标题】:Disable time picker from mysql从mysql禁用时间选择器
【发布时间】:2015-11-29 14:35:18
【问题描述】:

目前我正在使用 html time picker,但不介意使用 Javascript/Jquery/Ajax。我要解决的问题是:

您是客户,您从员工那里订购了 x。 x 有一个持续时间(start_time - end_time)。时间表单数据保存在$customer_time。请注意,我必须将日期存储为 varchar。但我的问题不在于日期,而在于时间。

我的sql查询是这样的(如果可以的话,请随意改进)

SELECT employee_id, product_start_time, product_end_time, date FROM orders
WHERE NOT (
      employee_id ='$employee_id'
  AND res_date = '$res_date'
  AND $customer_time =TIMEDIFF ('product_start_time','product_end_time')

)

我想我写的timediff是对的,如果不是请纠正它,因为我以前从未使用过它,这个想法是

$customer_time = start_time - end_time

无论如何,如果员工有空,那么客户可以继续预订,否则应该禁用 time_picker 字段。我需要一个像 html 一样的时间选择器,但我可以使用它并禁用时间。我不想要一个从间隔列表中选择默认时间的时间选择器。

那么请

  • 检查我的mysql查询是否正确
  • 推荐一个时间选择器
  • 高度赞赏示例植入

更新

也许我的查询的更好版本是使用 INTERVAL 而不是 timediff,因为每个产品都有以分钟为单位的持续时间,很少有以小时为单位的持续时间,但大多是分钟。

我最初的想法是创建一个持续检查可用性的时间字段,就像您在使用 ajax 的用户名字段中检查可用用户名一样,但不知道这是否可行。

【问题讨论】:

  • 我想要一个可以禁用值的时间选择器输入字段。所以如果用户 x 选择了一个时间,用户 y 不能选择相同的时间但不是下拉选择列表,我想要一个输入字段
  • 我剩下的问题是讨论我的 sql 查询
  • 请注意,如果他使用 sql 实施解决方案或帮助,我会给出至少 50 个代表接受的答案,这就是为什么我的问题看起来很广泛,可能会给多个用户提供赏金,具体取决于回答因为这个问题对我来说非常重要
  • 我写了整个 sql,所以你不会花一分钟来验证它是否正确,因此它是一个问题而不是 1 中的两个问题,但是如果你仍然觉得我通过问 2 个问题在作弊1,然后告诉我如何使时间选择器输入字段具有禁用选项
  • 那么用户是否应该同时选择开始时间和结束时间?或者是否有开始时间和持续时间可供选择?你写到时间表单数据保存在$customer_time,既然你想要一个时间选择器,我有点不明白你为什么要说$customer_time = start_time - end_time,因为那不是时间,而是间隔。你能澄清一下吗?

标签: javascript php jquery mysql


【解决方案1】:

@Lynob 这里是带有禁用时间的时间选择器。您需要在 disabled 数组中投入更多时间,它会起作用。

var input = $('#input-a');
var dissabledTime = ["11:00", "12:00", "13:00", "14:00"];
input.clockpicker({
autoclose: true,
afterDone: function() {
   console.log(dissabledTime.indexOf($('#input-a').val()));
                       if(dissabledTime.indexOf($('#input-a').val()) != -1)
                         {
                           alert("My dear select other time i'm busy :)");
                           $('#input-a').val('');
                         }
                    },
});

这是整个fiddle

问候,

乔治

【讨论】:

    【解决方案2】:

    从你想说的假设:

    将选定的日期以日期格式存储到 mysql。查询时,请检查每个用户选择的日期或您希望如何进行。然后就这样继续下去。

    这将是每个会话。您必须将结果存储在数组中:

     var disableddates = ["02-14-2015", "05-19-2013", "12-20-2014", "another one"];
    
    
    function DisableSpecificDates(date) {
        var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
        return [disableddates.indexOf(string) == -1];
      }
    

    您必须稍后调用 datepicker 函数。

        $(function() {
          $("#date").datepicker({
            beforeShowDay: DisableSpecificDates
          });
       });
    
    
    
       <!doctype html>
        <html>
    
        <head>
          <meta charset="UTF-8">
          <title>Tite</title>
       </head>
        <body>
          <input id="date" type="text">
        </body>
        </html>
    

    您必须包含 jquery datepicker 插件和依赖项。

    【讨论】:

    • 我的问题不是日期,而是时间。我想要一个可以禁用值的时间选择器输入字段。所以如果用户 x 选择了一个时间,用户 y 不能选择相同的时间但不是下拉选择列表,我想要一个输入字段
    • 输入字段如?您想显示日期选择器之类的时间选择器或用户可以手动输入时间的空白字段吗?因为这对 UI 不利,因为如果你不给他们选项,用户必须知道什么以及如何编写格式。
    • 是的,但可能就像一个有分钟的弹出窗口,他不能选择禁用的范围,例如,我选择上午 11 点,然后我不能选择 15 到 30 分钟,因为其他人有预订11 15 至 11 30
    猜你喜欢
    • 2015-12-17
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2020-06-15
    • 2016-02-16
    • 2016-05-12
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多