1

phpファイルのフォームから入力(日付)を取得し、date変数を使用してmysqlデータベースからデータを選択し、ページを更新せずに同じphpファイルの配列を返す必要があります。現在、私は3つのファイルを持っています:index.php、、global.jsおよびdate.php

index.php入力(この場合は日付)を受け取ります

Date: <input type="text" id="date">
  <input type="submit" id="date-submit" value="Submit">
  <div id="date-data"></div>
  <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script src="js/global.js"></script>

global.js送信ボタンのクリックをリッスンし、入力(日付)をに投稿しますdate.php

$('input#date-submit').on('click', function() {
    var date = $('input#date').val();
    $.post('../ajax/date.php', {date: date}, function(data) {
        $('div#date-data').html(data);
        alert(data);
    });

});

date.php日付を取得し、mysqlデータベースにクエリを実行して配列を返します。この配列はに戻す必要がありますが、index.phpその方法がわかりません。

<?php 

$con = mysql_connect('localhost', 'root', 'pass');
mysql_select_db('gymflow', $con);
  $date = $_POST['date'];
  $query = mysql_query("SELECT * FROM table WHERE `date` = $date");
    $values = array();

  while ($row = mysql_fetch_array($query))
  {
    $values[] = $row['utilization'];
  }
echo json_encode($values);

?>

$values理想的には、変数を変数に渡すdate.phpことができる必要があります$valuesindex.php

これを行うためのより簡単な方法があるはずです...

4

1 に答える 1

3

AJAX呼び出しの目的は、更新せず、代わりに結果を最初のページに直接index.php配信することです。data.phpjavascriptコールバックを介してDOMを変更でき、で他のデータベース要求を行う必要がありますdata.php。Javascript呼び出しが行われたときに、最初のページがすでに処理されてクライアントに送信され、場合によってはブラウザウィンドウにレンダリングされているため、index.phpの出力を通知する目的はありません。data.php

後続のリクエストで入力値を知る必要がindex.phpある場合は、ユーザーのセッションの値に格納できます。

于 2012-12-25T12:32:58.770 に答える