2009-11-09 43 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