Php 将表单字段与数据库字段进行比较并突出显示表单字段

Php 将表单字段与数据库字段进行比较并突出显示表单字段,php,comparison,Php,Comparison,您能在以下两个场景(PHP+MYSQL)中帮助我吗 场景1: 在提交表单之前,我需要将HTML表单字段值与数据库字段值进行比较,并以某种颜色突出显示表单字段,这些字段的值与数据库值不同(以提醒用户) 场景2: 加载表单时,我需要比较两个不同数据库表中的值(表具有不同的列名,但信息相同)。不同的字段需要在html表单中突出显示,以指示用户主数据与辅助数据不同 你能帮我做这件事的有效方法是什么(比较和突出显示表单值) 提前谢谢 纳维情景1 <form method="post"> &

您能在以下两个场景(PHP+MYSQL)中帮助我吗

场景1: 在提交表单之前,我需要将HTML表单字段值与数据库字段值进行比较,并以某种颜色突出显示表单字段,这些字段的值与数据库值不同(以提醒用户)

场景2:

加载表单时,我需要比较两个不同数据库表中的值(表具有不同的列名,但信息相同)。不同的字段需要在html表单中突出显示,以指示用户主数据与辅助数据不同

你能帮我做这件事的有效方法是什么(比较和突出显示表单值)

提前谢谢 纳维情景1

<form method="post">
  <? foreach ($fields as $field) : ?>
    <? if (in_array($diff_fields, $field)) : ?>
    <div style="background-color:red">
    <? else : ?>
    <div>
    <? endif; ?>
      <input type="text" value="<?= $record[$field] ?>"/>
    </div>
  <? endforeach; ?>
</form>

由于您希望在提交表单之前处理场景一,因此需要使用JavaScript进行比较。如果在生成页面之前知道表单的结构,则应该使用表单中的、和隐藏字段编写一系列比较


对于场景二,这取决于您对“高效”的定义。如果您希望它使用最少的服务器资源,那么可以将两个数据库表输入到命名良好的表中,然后再次使用JavaScript突出显示差异。如果您想要一个不依赖于在客户端浏览器上运行的JS的解决方案,您可以在对MySQL的查询中进行比较。在PHP中运行比较本身可能是最容易编码的,因此对程序员来说效率最高,但执行速度最慢(如果这取决于表大小等因素)。

是否有其他替代方法不使用jquery如果您希望在提交表单之前处理客户端,则可以使用JavaScript。当然,你也可以使用其他库,如果你愿意,也可以不使用库。我建议使用jQuery,因为它使JS更容易使用。
$fields = array('id', 'name', 'created_at');
$diff_fields = array();

$record = fetch_from_db($record_id);

foreach ($fields as $field) {
  if (isset($record[$field]) && $record[$field] != $_POST[$field]) {
    $diff_fields[] = $field;
  }
}