-1

私はjquery datepickerを使用して日付を選択し、それを選択して選択した日付に従ってデータベースからクエリを選択したいのですが、それについて調べたところ、この質問が見つかりました .phpとmysqlを使用したjQuery datepickerは、 ajaxを使用する必要があると言っていますそれはしかし、私は彼らが行う実装を理解できません! 誰か助けてください私はそのようなことをしようとしています

    <script>

$(function() {

    $( "#datepicker" ).datepicker({minDate: 0, showAnim: "bounce",
     onSelect: function(dateText, inst) {<?php mysql_select_db($database_conn, $conn);
$query_time = "SELECT reservation.R_time FROM reservation WHERE reservation.R_date='"?>dateText<?php "'" ;
$time = mysql_query($query_time, $conn) or die(mysql_error());</script>
4

2 に答える 2

0

JS を変更して、onSelect で ajax 呼び出しを送信し、dateText.

$( "#datepicker" ).datepicker({
    minDate: 0, 
    showAnim: "bounce",
    onSelect: function(dateText, inst) {
        $.ajax({
            type: 'POST',
            url: 'select_time.php',
            data: {date : dateText},
            success: function(resp){
                if(false !== resp){
                    alert(resp);
                }
            }
        });
    }
});

次にselect_time.php

<?php
    if(!empty($_POST['date'])):
        $mysqli = new mysqli('connection info'); //mysqli connection
        $stmt= $mysqli->prepare('SELECT reservation.R_time FROM reservation WHERE reservation.R_date = ?'); //prepare the statement
        $stmt->bind_param('s', $_POST['date']); //bind our parameters
        $stmt->execute(); //execute our query
        $stmt->store_result(); // store result so we can check rows
        $stmt->bind_result($resTime); //we only want the reserveration time
        $stmt->fetch(); //fetch the rows
        if($stmt->num_rows() > 0):
            echo $resTime;  //return the time from the database
            $stmt->close(); //close the statement
        else:
            return false; //row doesn't exist, return false
        endif;
    endif;    
?>

これはテストされていませんが、動作しない理由はわかりません。

于 2013-04-24T18:55:42.093 に答える
-1

あなたはいくつかのことを混乱させていると思います:

まず、PHP は常にページが読み込まれる前に (したがって jQuery も) 実行されるため、jQuery セレクターで PHP を呼び出しても機能しません。

あなたがする必要があるのは、jQuery の onSelect で起動する ajax 関数を作成することです (ポップアップ カレンダーの場合は、通常 onClose イベントを使用します)。

Javascript:

$( "#datepicker" ).datepicker({
minDate: 0, 
showAnim: "bounce",
onClose: function(dateText, inst) {
   $.post('select_time.php?dateText=' + dateText, function(queryResult){
         // do something with the return query
   });
}
});

PHP ページ:

$connection = mysqli_connect("localhost","username","password","db");

$sql = "SELECT reservation.R_time FROM reservation WHERE reservation.R_date={$_post['dateText']}";

if ($result = mysqli_query($connection , $sql))
  {
     while ($getData = mysqli_fetch_field($result))
       {
          echo $getData->R_time;
       }
     mysqli_free_result($result);
  }

mysqli_close($connection);
于 2013-04-24T18:40:17.667 に答える