我正在使用多选框,如下所示:
<select multiple="pages" id="pages" name="pages[]">
<option value="Home Page">Home Page</option>
<option value="Contact Us">Contact Us</option>
<option value="Support">Support</option>
</select>
页面列表是从数据库中的另一个表生成的。
目前我正在破坏$ _POST ['pages']并将字符串存储在数据库中。什么是更有效的存储选定值的方法?
最后,我如何仍然显示所有页面(从数据库中的另一个表中检索),并在多个选择框中选择用户选择的页面。
E.g。用户选择了“联系我们” - 当在编辑页面上显示所有页面时,“联系我们”条目将突出显示(选中)。
答案 0 :(得分:0)
法线在数组中全部崩溃,我认为它非常好。
这是一个例子:http://www.onlinetools.org/tricks/using_multiple_select.php
答案 1 :(得分:0)
除了将属性$_POST['pages']
转换为数组位置之外,没有更有效的方法将value
存储到数据库中。
$type = array("Home Page","Contact Us","Support");
使用数组维护所选项目(对于POST)是完美的。例如:
if(isset($_POST['submit'])){
echo "<select name=\"pages\" id=\"pages\" names=\"pages[]\">";
foreach($t as $loc=>$type)
echo "<option value=\"$loc\">$type</option>";
echo "</select>";
}else{
echo "<select name=\"pages\" id=\"pages\" names=\"pages[]\">";
foreach($t as $loc=>$type)
if($_POST['pages'] == $loc) //select that item
echo "<option value=\"$loc\" selected=\"selected\">$type</option>";
else
echo "<option value=\"$loc\">$type</option>";
echo "</select>":
}
根据数据库中的数据选择项目只需将第9行if
上的$loc
语句替换为您存储在数据库中的数组位置。