3
$options1 = array( 1=>'= Equals', '≠ Does not Equal', '> Is greater than', '≥ Is greater than or equal to', '< Is less than', '≤ Is less than or equal', '∋ Contains', '∌ Does not contain');

<select name="entry_id_selector[]">';
foreach ( $options1 as $i1=>$opt1 ) : 
echo '<option value="' .$i1 .'"'
.($i1 == $entry_id_selector_topic) .'? "selected" : "">'
.$opt1 .'</option>';
endforeach;
echo '</select>';

$entry_id_selector_topic = $_POST['entry_id_selector'];

コードのこの部分の何が問題になっていますか.($i1 == $entry_id_selector_topic) .'? "selected" : ""

デフォルト値は= Equals

たとえば、ユーザーが選択> Is greater thanして [投稿] ボタンをクリックすると、ページがリロードされます。ドロップダウンメニューが選択され、表示された値> Is greater thanがデフォルト値であることを期待しています。

これに変更されました.($i1 == $entry_id_selector_topic) .'? selected="selected" : "">'常に配列から選択された最後のアイテムを取得します∌ Does not contain

アップデート。最後に解決策を取得します。$entry_id_selector_topic[0] 最初は、なぜが の最初のアイテムを常に表示しないのか理解できませんでした$options1

しかし、ドロップダウン メニューから値を選択して [送信] ボタンをクリックすると、ドロップダウン メニューから選択$entry_id_selector_topic = $_POST['entry_id_selector'];した値だけが存在します。その$entry_id_selector_topicため、項目 [0] のみを持つ新しい配列があります。

これで問題が明確になったようです。

4

3 に答える 3

2

このコードは機能します

echo '<td><select name="entry_id_selector[]" onmousedown="SetWidthToAuto(this)">';
foreach ( $options1 as $i1=>$opt1 ) : 
echo '<option value="' .$i1 .'"'
.(($i1 == $entry_id_selector_topic[0])? 'selected' : "") .'>'
.$opt1 .'</option>';
endforeach;
echo '</select></td>';

私だけが何の説明もありません$entry_id_selector_topic[0]

于 2013-06-22T10:51:00.747 に答える
1

私はそれがあるべきだと思います:

($i1 == $entry_id_selector_topic)?"selected" : ""

その条件が true の場合は "selected" を返し、それ以外の場合は "" を返します。

于 2013-06-22T09:47:49.363 に答える
1
  echo '<option value="'.($i1 == $entry_id_selector_topic) ? "selected" : "".'>'.$opt1 .'</option>';

これを試して

于 2013-06-22T09:59:23.497 に答える