0

私はこのチュートリアルに従っています。私がやろうとしているのは、データベース内のテーブルが影響を受ける (挿入、削除、更新) ときに、アプリケーションのテーブルがF5、または更新ボタンを押さなくても更新されるようにすることです。チュートリアルに従ってティーまで進みましたが、うまくいきませんでした。何も起こりません。誰かが私のコードを調べて、問題がないかどうかを確認していただければ幸いです。

<head>
    <link href="core/styles/secondary.css" rel="stylesheet" type="text/css"/>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript">
        $.ajaxsetup({
            cache: false
        })
        var ajax_load = "<img class='loading' src='core/images/load.gif' alt='Loading...'/>

        var loadURL="inoffice.php";
            $("#start_que").click(function(){
                $("#que").html(ajax_load).load(loadURL);
            });
     </script>

これはinoffice.phpのテーブルコードです。データベース内の同じテーブルから2つのテーブルをエコーし​​ていますが、ビューが異なります(null、IS NOT NULL)

<body id="que">
<?php
echo "Waiting";
echo 
    "<table border='2'>
    <tr>
    <th>ID</th>
    <th>A Number</th>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Why</th>
    <th>Student Comments</th>
    <th>Additional Requirements</th>
    <th>Signintime</th>
    <th>Staff Member</th>
    <th>Click if ready!</th>
    </tr>"
    ;

    foreach($result as $row)
    {
  echo "<tr>";
  echo "<td>" . $row['id'] . "</td>";
  echo "<td> <a href=student.php?anum=" . $row['anum'] . " target='_blank'>" .$row['anum'] . " </a></td>";
  echo "<td>" . $row['first'] . "</td>";
  echo "<td>" . $row['last'] . "</td>";
  echo "<td>" . $row['why'] . "</td>";  
  echo "<td>" . $row['comments'] . "</td>";
  echo "<td>" . $row['additional_req'] . "</td>";
  echo "<td>" . $row['signintime'] . "</td>";
  echo "
        <td>    <form action='counselor.php?id=" . $row['id'] . "' method='post' target='_new'>
                    <select name='namedrop'>
                        <option value=''>Counselor Name</option> 
                        <option value=''></option>
                        <option value=''><option>
                        <option value=''></option>
                        <option value=''></option>
                        <option value=''></option>
                        <option value=''></option>
                        <option value=''></option>
                        <option value=''></option>
                    </select>
            </td>

            <td> <input type='submit' name='submit' value='Start Session' id='start_que'></td>
            </form> </td>";
}

id start_que を持つ Session Start というボタンは送信ボタンです。そのボタンが押されると、2 番目のテーブルにデータが入力されます。2 番目のテーブルのコード:

echo 
    "<table border='2'>
    <tr>
    <th>ID</th>
    <th>A Number</th>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Why</th>
    <th>Student Comments</th>
    <th>Signintime</th>
    <th>Staff Member</th>
    <th>Counselor Start Time</th>
    </tr>"
    ;

    foreach($result2 as $row2)
    {
  echo "<tr>";
  echo "<td>" . $row2['id'] . "</td>";
  echo "<td><a href=student.php?anum=" . $row2['anum'] . " target='_blank'>" .$row2['anum'] . " </a></td>";
  echo "<td>" . $row2['first'] . "</td>";
  echo "<td>" . $row2['last'] . "</td>";
  echo "<td>" . $row2['why'] . "</td>"; 
  echo "<td>" . $row2['comments'] . "</td>";
  echo "<td>" . $row2['signintime'] . "</td>";
  echo "<td>" . $row2['counselorname'] . "</td>";
  echo "<td>" . $row2['counselor_start_time'] . "</td>";
}

echo "</tr>";
echo "</table>";

上記のチュートリアルから、start_que でボタンをクリックすると、最初のテーブルに 1 つ少ないフィールドが表示され、2 番目のテーブルに新しい DOM が読み込まれますが、何らかの理由で目的の効果が得られません。

どんな助けでもありがとう。

4

1 に答える 1

0

一見したところ、主な問題は、DOMがレンダリングされる前にDOMイベントハンドラーをアタッチしようとしていることのようです。すべてのコードを内部にラップする$(document).ready()この関数は、domの準備ができたときに呼び出され、イベントハンドラーをアタッチできます。

それ以外は、いくつかの引用符とセミコロンを見逃しているため、関数名はajaxSetup代わりに使用する必要がありますajaxsetup

<script type="text/javascript">
    $(function () {
        $.ajaxSetup({
            cache: false
        });

        var ajax_load = "<img class='loading' src='core/images/load.gif' alt='Loading...' />";

        var loadURL = "inoffice.php";

        $("#start_que").click(function () {
            $("#que").html(ajax_load).load(loadURL);
        });
    });
</script>

編集:あなたの説明では、最初のテーブルはinoffice.phpからのものであると言いましたが、コードは2番目のテーブルをロードするURLとしてinoffice.phpをリストしています。

于 2013-01-12T23:14:43.220 に答える