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

时间:2009-11-09 13:01:43

标签: php comparison

您可以在以下两种情况下帮助我(PHP + MYSQL)

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

Scenario2:

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

你能帮我解决这个问题的有效方法(比较并突出显示表格值)。

提前谢谢 Naveen

2 个答案:

答案 0 :(得分:0)

情景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>

$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;
  }
}

答案 1 :(得分:0)

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

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

相关问题