2009-11-09 108 views
0

你能帮助我在以下两种情况下(PHP + MYSQL)比较数据库字段表单字段和突出表单字段

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

Scenario2:

在加载形式,我需要比较存在于2个不同的数据库表(表具有不同的列名称但信息是一样的)的值。需要在html表单中突出显示不同的字段,以指示用户主数据随辅助数据而变化。

你能帮助我吗?这是做这件事的有效方式(比较和突出显示表格值)。

在此先感谢 纳文

回答

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

由于您希望您提交表单前处理的情况之一,你需要使用JavaScript做比较。如果在生成页面之前知道表单的结构,则应该在东面使用jQuery,change()和表单中的隐藏字段编写一系列比较结果。

对于情景二,它对您的“有效”定义有一点依赖。如果您希望它使用最少的服务器资源,那么可以将返回的页面与两个数据库表一起输入到具有名称的表中,然后再次使用JavaScript突出显示不同之处。如果你想要一个不依赖JS的解决方案在客户端的浏览器上运行,你可以在查询中对MySQL进行比较。在PHP本身运行比较可能是最简单的代码,因此对程序员来说最为有效,但执行速度最慢(如果这很重要取决于表大小等几项内容)。

+0

还有没有其他的替代方案没有使用Jquery – 2009-11-09 14:36:07

+0

如果你想在提交表单之前处理客户端,JavaScript是使用的工具。当然还有其他图书馆可以使用,或者如果你愿意,你可以没有图书馆。我只是建议jQuery,因为它使JS更易于使用。 – acrosman 2009-11-09 14:41:58