2

私はかなり初心者のプログラマーで、現在のページから ID を取得して heartbeat.php に送信するハートビート スクリプトを作成しようとしています。そこで次のことが起こります。

1)送信したばかりの ID に対応するcurrentlocationフィールドをスケジュールテーブルで検索します。

2) 次に、現在の場所フィールドで見つけた値を JSONにエンコードします。

heartbeat.php のコードは次のとおりです。

<?php
/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = '********';

/*** mysql password ***/
$password = '*********';

$db = new PDO("mysql:host=$hostname;dbname=sv", $username, $password);
$statement = $db->prepare("SELECT currentlocation FROM schedule WHERE apptid = :apptid");
$statement->execute(array(':apptid' => $apptid));
$row = $statement->fetch();
echo json_encode($row['currentlocation']);

?>

HTML 側では、データベースから患者情報を取得する while ループに php を使用しているため、ID-NUMBER-1 と ID-NUMBER-2 はデータベース内の対応する ID になります。

html は次のとおりです。

<!--  FIRST SET: the id is ID-NUMBER-1  -->

<div class='jcontainer'>
      <div style='display:none; class='jcontainerid'>ID-NUMBER-1</div>
      <button class='checkIn' data-param='button_ID-NUMBER-1'>Check In</button>
      <form method='post' class='myForm' action=''>
           <select name='locationSelect' class='locationSelect' data-param='location_ID-NUMBER-1'>
                <option value='1'>Exam Room</option>
                <option value='2'>Exam Room 2</option>
                <option value='3'>X-Ray Room</option>
                <option value='1000'>Check Out</option>
           </select>
      </form>
      <div class='finished' style='color:#ff0000;'>Checked Out</div>
</div>

<!--  SECOND SET: the id is ID-NUMBER-2  -->

<div class='jcontainer'>
      <div style='display:none; class='jcontainerid'>ID-NUMBER-2</div>
      <button class='checkIn' data-param='button_ID-NUMBER-2'>Check In</button>
      <form method='post' class='myForm' action=''>
           <select name='locationSelect' class='locationSelect' data-param='location_ID-NUMBER-2'>
                <option value='1'>Exam Room</option>
                <option value='2'>Exam Room 2</option>
                <option value='3'>X-Ray Room</option>
                <option value='1000'>Check Out</option>
           </select>
      </form>
      <div class='finished' style='color:#ff0000;'>Checked Out</div>
</div>

したがって、問題は、JQuery で次のことを行うにはどうすればよいかということです。

1) 各 jcontainer (または、html でマークしたフォーム要素の各セット) について、jcontainerid のクラスを持つ div 内のテキストである id を取得します。

2) 次に、jquery ハートビートを使用して、5 秒ごとに各 jcontainer の ID が php ページに送信され、currentlocation の値がJSON形式で返されます。

すべての助けに感謝します。さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。喜んでお手伝いさせていただきます。

4

1 に答える 1

2

.each() を使用して、各 jcontainer を反復処理できます。詳細については、こちらを参照してください。

http://api.jquery.com/each/

できることの例を次に示します。

function dataToHeartbeat(){
  $(".jcontainer").each(function(){
    // grab the id
    var apptid = $(this + " > .jcontainerid").text();
    // Submit to heartbeat.php with JSON expected in return
    $.getJSON('heartbeat.php?apptid='+apptid, function(data){
      // Do something with resulting data
    });
  });
}

その後、setTimeout() を使用して関数を呼び出すことができます。必要に応じて、関数内に setTimeout を追加して、連続ループを発生させることができます。

于 2012-11-21T00:57:52.180 に答える