0

我正在使用一个多选框,如下所示:

<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'] 并将字符串存储在数据库中。存储所选值的更有效方法是什么?

最后,我如何才能显示所有页面(从数据库中的另一个表中检索)并在该多选框中选择用户选择的页面。

例如,用户选择了联系我们 - 当在编辑页面上显示所有页面时,联系我们条目被突出显示(选中)。

4

2 回答 2

0

正常情况是全部折叠在一个数组中,我认为这非常好。

这是一个例子:http ://www.onlinetools.org/tricks/using_multiple_select.php

于 2012-08-24T00:05:52.260 回答
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>":
}

根据数据库中的数据选择项目只需将if第 9 行的语句中的语句替换为$loc您存储在数据库中的数组位置。

于 2012-08-24T00:06:28.807 回答