我有一個表單,用於從mysql中選擇數據的複選框。如果用戶已經這樣做,我也想讓複選框保持檢查狀態。除此之外,這些複選框是從mysql選擇生成的。根據他們的權限等通過會話變量檢查更改複選框
每個用戶都有不同的複選框,所以我得到這個代碼的工作:
<form method="post" id="someselect">
<?php
function checked() {
if (in_array("somestring", $_SESSION['specificvalue'])) {
return "checked";
};
}
$i = 0;
while ($row = $result->fetch_assoc()) {
echo "<input id='specificvalue' type='checkbox' " . checked() . " name='specificvalue[]' value='" . $row['specificvalue'] . "'>" . $row['longvalue'] . "<br>";
};
mysqli_close($con);
//$_SESSION['specificvalue']=implode("','",$specificvalue);
$_SESSION['specificvalue'] = $specificvalue;
?>
<input type="submit" value="Submit">
</p>
</form>
它的工作原理,產生特定於用戶的複選框和function checked()
還與exeption that
代替in_array("somestring", $_SESSION['subunit'])
,我會喜歡使用in_array($row['subunit'], $_SESSION['subunit'])
,這根本不起作用。我不願意理解爲什麼或想出更好的解決方案。這點應該是生成複選框列表,並且已經檢查過之前存儲在會話變量中的框。
目前,這個工作代碼。如果我有複選框列表,並選中specificvalue
「somestring」框,則在生成複選框表單時將檢查所有複選框。
我想我可以使用jquery,但谷歌給了我不同的解決方案,不能在我的使用。我也不能手動編寫複選框,因爲它們有大約70個在一起,並且它們在時間上有所不同。我想在mysql數據庫更新時讓它們自動填充。
沒有。這個問題上沒有包括這個id上的一串包含。會話和所有的變量工作得很好。唯一的問題是如何通過使用while循環生成的每個複選框行正確地保留選中的值 – Gusmar
會話幾乎已經開始 – Gusmar
,而不是checked ='checked'我剛剛檢查。它似乎工作,但並不完全保持所有選中的複選框 – Gusmar