PHP表中的值更改时发出警报

时间:2016-04-25 21:50:45

标签: javascript php

我有两张纸。该控件显示一个作业详细信息列表,其中还包含一个回显活动作业上的注释的列,另一个页面是操作员可以附加注释的位置。

我需要做的是在控制页面上警告用户作业的注释已经更改,这将在操作员提交注释后发生。 目前,我有一个单元格,当有一个音符时会突出显示红色,但是当有新音符时想要主动发送警报。

我尝试了onChange()函数,但在我输入一个输入字段并在控制页面上自行更改之前它不会发出警报。我也尝试了.change函数,但这也没有用。

从操作员页面发送到SQL数据库的查询是:

UPDATE operations
    SET notes=$notes
    WHERE jobID=$jobID
      AND operation=$operation"

在控制页面上回显红色单元格的代码就是这个PHP:

$conN = mysqli_connect(DB_HOST, DB_USER);

if (!$conN) {
   die('Could not connect: ' . mysqli_error($conN));
} // Check Connection

mysqli_select_db($conN,"jms");

$jid = $row['jobID'];
$opn = $row['operation'];
$highlight = mysqli_query($conN,
    "SELECT notes FROM operations WHERE jobID=$jid AND operation=$opn"
);

while ($data = mysqli_fetch_array($highlight))

    if (isset($data['notes']) && $data['notes'] != "") {

        echo "<td id='notes' style='background-color:red;width:1%;'>" .
          "<input class='target' type='text' value='" .
          $data["notes"]. "' >" . "</td>";

    } else {

        echo "<td style='background-color:white;width:1%;'>" . "</td>";

    }

echo "</tr>"; // End the row
$index++;

如果在数据库中有特定作业和操作的注释,则以红色回显的单元格具有if (isset())功能以显示红色。

编辑: 这是我一直试图使用onChange函数调用的Javascript:

function newNote() {
var jobID = "X";
var operation = "Y";
alert("New note added to Job No. "+jobID+" at Operation No. "+operation);
}

正如您所看到的,它是一个非常简单的脚本,因此我最终只是简化了过程并使用简单的文本警报作为测试。

1 个答案:

答案 0 :(得分:1)

你可以通过JQuery或JavaScript来实现,你需要的是通过发送请求然后接收响应来立即检测到DB记录的任何变化。

通过jQuery或java脚本使用ajax函数,并使帖子定位到您提到的控制页面,并提醒响应。

jquery的一个例子:

$(document).ready(function(){
 $.ajax({
        type: "POST", 
        url: "yourcontrolpage",
        data: { jid: jid ,opn:opn},

        success: function(html) {

         alert(html);

             } 
}); });

例如,您可以检索记录数或最新记录,因此在下一个请求中您可以确定是否存在更改,以便执行警报或没有任何更改,因此不会发生任何事情