你好,我有以下問題:如何處理與報表複選框和呼應他們
我想創建一個搜索引擎的過濾器。我有一些特定搜索條件的輸入字段,並在各自的複選框旁邊。所以,看起來像:
inputfield一個:[_ ____]過濾器用於:開/關:[]
inputfield B:_ ____]對於b濾波器:上開/關:[]
inputfield C:[_ ____]爲C濾波器:開/關:[]
的代碼結構如下:
首先檢查inputfield是否爲空,並選中複選框。如果選中,提交後將取消選中。反過來,如果只是輸入字段被填充並且複選框未被選中,它也會出錯,出現錯誤並且過濾器無法工作。所以我使用每個濾波器的自己的錯誤陣列等(the name and value of the first checkbox is name="filter_a" value="1")
:
...
$checkbox_filter_a = $db->real_escape_string(htmlentities(trim($_POST['filter_a'])));
...
$filter_a = (!empty($checkbox_filter_a)) ? 1 : 0;
...
$errors_a = array();
if ($filter_a == 1){
if (empty($input_a)){
$errors_a[] = 'the filter needs some input';
}
}
if (!empty($input_a)){
if ($filter_a == 0){
$errors_a[] = 'filter is not activated';
}
}
如果沒有錯誤,這兩個標準都滿足的過濾器或者是上或沒有。 所以邏輯背後的是,當加載頁面時,複選框必須被取消選中。在關於過濾的標準之後它是。
要在下面的條件下顯示已選中或未選中狀態,應在提交後檢查狀態或未選中狀態。爲此,我爲每個過濾器代碼(各自checkbox_filter_b,...)的inputfield後的複選框的一部分:
<?php
if (checkbox_filter_a == 0) {
echo '<input type="checkbox" name="checkbox_filter_a" value="1" checked/>';
}else {
echo '<input type="checkbox" name="checkbox_filter_a" value="1"/>';
}
?>
還有什麼不滿足的。這是因爲以下問題:
當加載頁面時,它會顯示所有複選框未選中。如果我嘗試因沒有填充輸入而導致錯誤,或者只檢查其中一個過濾器的複選框,在提交所有其他複選框後會自動檢查。
所以如果有人能夠幫助我,我真的很感激。非常感謝。
你好,謝謝你回答我剛剛測試過,但它有問題,呼應複選框本身。他們不會被顯示。 – bonny 2012-04-26 08:11:04
@bonny我不知道你的意思,看到它在這裏工作:http://codepad.org/cFjKBvKh – 2012-04-26 08:58:35
你好,對不起。今天我有點bu isy。好的,我發現了錯誤。在html中仍然有舊的代碼。另一件我有問題的是設置每個錯誤數組:我使用:if(($ input_a === null)&&(isset($ _ POST ['checkbox_filter_a']))){ \t \t $ errors_1 [] =「過濾器需要輸入」; \t} else if(($ input_a!== null)&&(!isset($ _ POST ['checkbox_filter_a']))){ \t \t $ errors_1 [] =「過濾器未被激活」; \t} – bonny 2012-04-26 12:54:52