0

私はオンライン予約システムに取り組んでいるので、日付を受け取り、その日に空いている可能性のあるタイムスロットの配列を出力する php スクリプトがあります。日付ピッカーを閉じるときに、変数をファイルに送信して結果を取得するようにしようとしています。現時点では、送信ボタンも php ファイルにつながり、日付を選択すると利用可能なスロットが表示されます。PHP の部分は機能しますが、datepicker にイベントを追加すると、php ファイルに変数が送信されません。これも、別の load.('input_date.php'); を追加したときに発生する原因だと思います。if(isset... によって引き起こされた完全なタイムスロット リストを取得します... jQuery が変数の投稿を台無しにしている理由を誰か教えてもらえますか? よろしくお願いします..

$(document).ready(function() {
    $("#dates").load('input_date.php');
    $("#datepicker").datepicker({onClose: function() { 
    $.post("input_date.php", $('#datepicker').serialize()); 
    alert(1);


    }});

});

これはphpファイルです:

<?php
include('connection.php');
error_reporting(0);
$treatment = $_POST['treatment'];
$bookdate = $_POST['bookdate'];
if(isset($treatment) && isset($bookdate)){

$exp = explode("-", $bookdate);

//determine what day of the week it is
$timestamp = mktime(0,0,0,$exp[1],$exp[0],$exp[2]);
$dw = date( "w", $timestamp); // sun0,mon1,tue2,wed3,thur4,fri5,sat6
echo $dw."weekday"; //week day 
echo"<br/>";

//find bookings with same date
$q = mysql_query("SELECT BOOK_SLOT_ID FROM BOOKINGS WHERE BOOK_DATE='$bookdate'");
//make array of booking slots
$array1 = array();
while ($s = mysql_fetch_array($q)) {
 $array1[] = $s['BOOK_SLOT_ID'];
}
$q2 = mysql_query("SELECT SL_ID FROM SLOTS");
//make array of all slots
$array2 = array();
while ($s2 = mysql_fetch_array($q2)) {
$array2[] =  $s2['SL_ID'];
}

//remove bookings from all slots
$arr_res = array_diff($array2, $array1);

//make selectable options of results
echo "<SELECT>";
foreach($arr_res as $op){
$r = mysql_query("SELECT SL_TIME FROM SLOTS WHERE SL_ID='$op'");
$q3 = mysql_fetch_array($r);
echo "<OPTION value=".$op.">".$q3['SL_TIME']."</OPTION>";
}
echo "</SELECT>";
}else{
$else = mysql_query("SELECT * FROM SLOTS");
echo "<SELECT>";
while($array_else = mysql_fetch_array($else)){
echo "<OPTION value=".$array_else['SL_ID'].">".$array_else['SL_TIME']."</OPTION>";
}
echo "</SELECT>";
}

?>
4

1 に答える 1

0

これは、次のコード行があるためだと思います。

$('#datepicker').serialize()

これは、データピッカーではなくフォームのIDに変更する必要があります。PHPで、2つの別々の値を取得しようとしています。

$treatment = $_POST['treatment'];
$bookdate = $_POST['bookdate'];

現在、入力フィールド#datepickerの値を送信しているだけです。

于 2012-10-08T12:55:18.883 に答える