0
在家裏試試這個:
寫形式在PHP中顯示覆選框列表:選中複選框屬性設置,無論價值
$checkboxes = array('one' => 1, 'two' => 2, 'three' => 3);
$html = "<html><body><form name=\"myForm\" action=\"this\" method=\"post\"><ul>Check Test";
foreach ($checkboxes as $id => $value)
{
$checkVal = (isset($_POST['check_test'][$id])) ? 'true' : 'false';
$checkList = "<li><input type=\"checkbox\" name=\"check_test[]\" id=\"$id\"
value =\"$value\" checked=\"$checkVal\" />$name = $value</li>\n";
}
$checkList .= "<input type=\"submit\" value=\"Submit\">";
echo $html.$checkList."</ul></body></html>";
你會發現,無論你放什麼到$ checkVal當你點擊提交時,你的複選框將全部被檢查。我的解決方法是擴展$ checkVal變量,將整個「checked =」狀態設置爲「無」或「無」。我只是對Firefox(而非Iceweasel)僅查看屬性是否設置感到驚訝。爲什麼甚至有它,如果任何它被設置爲不相關
看HTML源選擇的屬性會顯示任何你放入checkval變量DOM規範狀態:。 checkboxObject.checked =真|虛假
這裏是我的輸出:
<ul><li><input type="checkbox" name="check_test[]" id="one"
value ="1" checked="false" />one= 1</li>
<li><input type="checkbox" name="check_test[]" id="two"
value ="2" checked="false" />two= 2</li>
<li><input type="checkbox" name="check_test[]" id="three"
value ="3" checked="false" />three= 3</li>
而且瞧!每個盒子都被檢查。相反,我已經明確表示在HTML中。
正如我在我的文章中提到:「我的解決方法是擴大$ checkVal變量設置整個」要麼東西或沒有=‘’狀態檢查。 「我只是指出,爲什麼麻煩有一個屬性」相等「的東西,並代表DOM中的無意義數據?沒有其他輸入屬性以這種方式運作,這是糟糕的設計和一個混亂, 3行代碼 – eggmatters
選擇不是唯一的,這是一個更像它的數字。[禁用](http://www.w3schools.com/tags/tag_option.asp)例如。是的,它看起來像一種壞設計,但我認爲它更適合舊版瀏覽器的兼容性,對於大多數瀏覽器,你可以簡單地編寫選定的內容,但它可以工作,但如果所有標籤屬性的外觀與name =「value」相同,那麼實現起來會更容易。 – PiTheNumber
Aha,謝謝當我在完成我的帖子時,我想到這可能都是瀏覽器的不兼容性,我主要運行IceWeasel,它應該是Mozilla 5,但它有它的調整和connundrums。輸入! – eggmatters