对表单元素集的多个AJAX请求

时间:2012-11-21 00:09:54

标签: php javascript jquery html

我是一个非常新手的程序员,他试图创建一个心跳脚本,从当前页面获取id并将其发送到heartbeat.php,其中发生以下情况:

1)我在计划表中查找与我刚发送的ID对应的 currentlocation 字段。

2)然后我编码我在JSON currentlocation 字段中找到的值

这是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中标记的每组表单元素),使用jcontainerid类获取id作为div内部的文本

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

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

1 个答案:

答案 0 :(得分: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以产生连续循环。