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 に答える