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 方面,我使用 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中标记的每组表单元素),获取id,它是具有jcontainerid类的div内的文本

2)然后使用jquery心跳,每5秒发送到php页面的每个jcontainer的id和以JSON格式发回的currentlocation的值。

非常感谢您提供的所有帮助。如果您需要更多详细信息,请尽管询问,我很乐意为您提供帮助!

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 回答