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

标签 php javascript jquery html

我是一个相当新手的程序员,正在尝试制作一个心跳脚本,从当前页面获取一个 id 并将其发送到 heartbeat.php,其中发生以下情况:

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

2) 然后,我将在 currentlocation 字段中找到的值编码为 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 进行 while 循环,从数据库中提取患者信息,因此 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,它是 div 内带有 jcontainerid 类的文本

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

super 感谢您的所有帮助。如果您需要了解更多详细信息,请直接询问,我很乐意为您提供帮助!

最佳答案

您可以使用 .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 以引起连续循环。

关于php - 对表单元素集的多个 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484375/

相关文章:

javascript - 如果 Array 键实际上是字符串,那么 Array 与 Object 的区别是什么?

JavaScript:如何从最后到第一个反转 order=[] 数组?

jQuery ListBox 单个​​或多个选定项目

php - 为什么这段代码没有将数据插入数据库?

javascript - 在一个div中找一个关键字,然后得到冒号后面的字符串,转为变量

javascript - html keygen替代方案,在浏览器中生成 key 对

javascript - 比较 javascript 日期对象

php - 复杂的 PDO MYSQL 查询不起作用

javascript - 将对象推送到 Mongoose 数组并检查数组对象内的重复字段

javascript - 未使用 JSONP API 中的信息创建对象