0

これはすでに尋ねられた質問と同様の質問であることは知っていますが、問題に対する別の回答を望んでいました。新しい記事をデータベースにアップロードできるフォームがあります。このフォームでは、記事の種類にドロップダウン メニューを使用しています。ドロップダウン ボックスには、ニュース、ゴシップ、旅行、公演などがあります。データベースにアップロードすると、選択したアイテム (この場合はニュース) のみが追加されます。

ユーザーが記事を編集できるようにする必要があるため、選択したアイテムをドロップダウン ボックスに入力する必要があります。各ドロップ項目とそれらの ID を使用してデータベース テーブルを設定するのは、BUM にとって少し面倒だと思います。選択した項目をデータベースの値として設定し、if ステートメントまたは何かを使用してドロップダウン ボックスの残りの部分を設定する方法はありますか?

それが理にかなっていることを願っています。また、ラジオボタンを使用することも解決策になると思いましたが、選択したボタンにデータベースの値を設定することはできません。

4

4 に答える 4

2

次のようなことができます。

// array of available options
$available = array('news'=>'News', 'gosip'=>'Gosip', 'travel'=>'Travel', 'performances'=>'Performance');
// selected option value
$selected = 'news';
echo '<select name="article-type">';
foreach ($available as $val => $label) {
    echo '<option value="'.htmlspecialchars($val).'"';
    if ($val == $selected) {
        echo ' selected="selected"';
    }
    echo '>'.htmlspecialchars($label).'</option>';
}
echo '</select>';
于 2009-02-22T16:05:01.827 に答える
1

記事の種類を表かそれに沿って配置したいようですね。

次に、テーブルからドロップダウンをロードし、記事タイプ ID への参照を記事テーブルに保存するだけです。

さらに、ID の検索を行うため、特定のタイプのすべての記事の取得がかなり高速になるはずです。

于 2009-02-22T16:03:46.777 に答える
1

これは何よりもデータベース設計の問題のように思えます。基本設計に欠陥があるようです。私はあなたの質問から問題を推測しようとしているので、軌道から外れている場合はご容赦ください。

これは、IMO である必要があるため、設計の関連部分です。

表: 記事


ArticleID
ArticleContent
ArticleSubject (FK from Subjects)
..
..
.. Other columns.

表: 科目


SubjectID
SubjectDescription
..
..
.. Other columns.

2 番目のテーブルを Subjects と呼んで、私の含意をよりよく説明していることに注意してください。このように、各記事には記事タイプ (件名) への参照があります。「記事タイプ」ドロップダウンリストのデータを取得するときは、単純に 2 番目のテーブルのすべての行を取得し、現在の選択に基づいて (最初のテーブルから) 選択した項目を設定します。

于 2009-02-22T16:18:48.360 に答える
0
$options = array(,);
$selection = filter_input(INPUT_POST, 'what');
$blah = true; //i don't know what to name this.
foreach($options as $option) {
    echo '....';
    if(isset($blah) && $option === $selection) {
        echo 'selected="selected"';
        unset($blah);
    }
}

これがおそらく最速の方法です。また、スピードを重視する場合は、 echo の複数のパラメーターを活用してください。

于 2009-02-22T16:09:50.770 に答える