私はPickadate.jsとJQuery Form Pluginを使用します。私は日付と時刻のピッカーを別々に持っています。私がしたいのは、datepickerの値に応じてtimepickerで時間を無効にすることです。だから、私はpicker.set("disable", [ ]);
にJSONデータを取得しようとしています。私はconsole.logにプレーンテキストを書くことができますが、それは無意味なままです。Ajax経由でのPickadate入力の更新
私は多くを試して、these solutionsに出くわしました。しかし、私はそれらを起動できませんでした。 (私はのをpickatimeするpickadate関数やクラスを適応。)
// 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
require ('connect.php');
$date = mysql_real_escape_string($_POST['date']);
$match_query = mysql_query("SELECT * FROM booking where DATE(time)='$date'");
$disabled_times = array();
if ($result = $match_query) {
\t /* fetch associative array */
\t while ($row = mysql_fetch_assoc($result)) {
\t \t setlocale(LC_ALL,"tr_TR.UTF-8");
\t \t $row['time'] = date('H:i', strtotime($row['time']));
\t \t $row['time'] = str_replace(':', ',', $row['time']);
\t \t $disabled_times[] = '['.$row['time'].']';
\t }
\t /* free result set */
\t mysql_free_result($result);
}
echo implode($disabled_times);
?>
ありがとうございました。 私の方法では、console.log(responseText)は '[" [4,30] "、" [9,0] "]'を返します。そしてあなたのconsole.log(json)は '[" 4,30 "、" 9,0 "]'を返します。 私のコードが文字列値を生成することはわかっています。私はjsonを渡す正しい方法を探しています。 – Melih
私は新しいソリューションを試してみましょう。私のアップデートをチェックしてみましょう。 –
素晴らしい仕事!いくつかの修正が必要です... 'var json = JSON.parse(responseText); picker.set( "enable"、true); picker.set( "disable"、json); ' – Melih