javascript - 通过 AJAX 更新 Pickadate 输入

标签 javascript php jquery ajax pickadate

我使用Pickadate.jsJQuery Form Plugin 。我有单独的日期和时间选择器。我想要做的是根据日期选择器的值禁用时间选择器中的时间。因此,我尝试将 JSON 数据放入 picker.set("disable", [ ]); 中。我可以 console.log 纯文本,但它仍然漫无目的。

我尝试了很多并遇到了these solutions in that question 。但我无法启动它们。 (我将 pickadate 函数和类改编为 pickatime 的函数和类。)

// Javascript
$(document).ready(function() {
  $("input").click(function() {
    $(".datepicker").pickadate({
      format: 'yyyy-mm-dd',
      formatSubmit: 'yyyy-mm-dd',
      min: true,
      max: false
    });
    var $input = $(".timepicker").pickatime({
      format: 'HH:i',
      formatSubmit: 'HH:i',
      formatLabel: 'HH:i'
    });
    $('.datepicker').change(function() {
      $('#form').ajaxSubmit({
        target: '#check_result',
        url: 'check.php',
        success: function showResponse(responseText, $form) {
          var picker = $input.pickatime('picker');
          picker.set("disable", [
            console.log(responseText)
          ]);
        }
      });
      return false;
    });
  });
});
// PHP (check.php)
<?php
// Database connection done.
$date = mysqli_real_escape_string($con, $_POST['date']);
$match_query = mysqli_query($con, "SELECT * FROM booking WHERE DATE(time) = '$date'");
$disabled_times = array();
if ($result = $match_query) {
	while ($row = mysqli_fetch_assoc($result)) {
		$disabled_times[] = $row['time'];
	}
	mysqli_free_result($result);
}
echo implode($disabled_times);
?>

最佳答案

您可以发布一个从 php 返回的 json 示例吗?

根据文档 ( http://amsul.ca/pickadate.js/api/#method-get-disable ) 你的 json 应该是这样的:[2,30], [4,30], [9,0]

如果您的 json 正确,请确保它没有作为字符串传递给时间选择器。尝试这样的事情:

var json = JSON.parse(responseText);
picker.set("disable", [ json ]);

更新: 我想使用以下代码,您的 json 将正确返回:

...
$time = explode(',', $row['time']);
$time[0] = (int)$time[0];
$time[1] = (int)$time[1];
$disabled_times[] = $time;
...
echo json_encode($disabled_times);

关于javascript - 通过 AJAX 更新 Pickadate 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38195451/

相关文章:

javascript - Jquery 根据浏览器大小/调整大小更改高度

javascript - 如何在 li 元素之后直接附加 div,即使 li 是嵌套的

php - 无法使用 Zend 框架从收件箱中获取某些电子邮件的邮件正文?

javascript - jquery 检查日期选择器的年份

php - 使用 PHP QR Code Generator 在 PHP 中创建带有居中 Logo 的 QR 码

php - 使用 PHP 中的预签名 URL 将文件上传到 S3

javascript - Grails - Ajax 提交不工作?

javascript - jQuery AJAX 数据类型 : 'script' not working on firefox

javascript - 是否可以对 JavaScript 而不是 ASP 进行 AJAX 调用?

javascript - 下一条语句在前一条语句结束之前运行