3

値を含む 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');

$counter_maximum = 3;

while ($counter < $counter_maximum){

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

foreach ($entry_id_selector_topic as $entry_id_selector_i=>$entry_id_selector_topic_value ) :
echo (($i1 == $entry_id_selector_topic_value)? 'selected' : "");
endforeach;

echo '>';
echo $opt1 .'</option>';
endforeach;
echo '</select>';

$counter++;
}

ユーザーが値を選択

ユーザーが選択した値で変数 (配列) を設定します (このコードは他のすべてのコードの上にあり、ページの上部にあります)

$entry_id_selector_topic = $_POST['entry_id_selector'];

デフォルト値 (ページの最初の読み込み後) は、$options1 または の最初の値= Equalsです。ユーザーが [送信] ボタンをクリックした後、ユーザーが選択した値を記憶したいと思います。

しかし、このコードでは次の動作が行われます:

1) ユーザーが 1 つのドロップダウン メニューでのみ値を変更/選択した場合、[送信] をクリックすると、すべてのドロップダウン メニューの値がユーザーが選択した値に変更されます。

2) ユーザーが複数のドロップダウン メニューの値を変更すると、すべてのメニューの値が、値が変更された最後のドロップダウン メニューの値に変更/選択されます。

実験がチェックしようとしたときに、このコード$entry_id_selector_topic_valueのすぐ下に配置しました$entry_id_selector_topic = $_POST['entry_id_selector'];

foreach ($entry_id_selector_topic as $entry_id_selector_i=>$entry_id_selector_topic_value ) {
echo $entry_id_selector_topic_value .' $entry_id_selector_topic_value<br>';
}

これ$entry_id_selector_topic_valueは、各ドロップダウン メニューから選択された値です。

各ドロップダウン メニューでユーザーが選択した値を記憶するには、何を修正 (変更) する必要がありますか?

4

2 に答える 2

0
foreach ($entry_id_selector_topic as $entry_id_selector_i=>$entry_id_selector_topic_value ) :
echo (($i1 == $entry_id_selector_topic_value)? 'selected' : "");
endforeach;

この部分は正しくありません。あなたの名前は

<select name="entry_id_selector[$counter]">

複数の値が不可能な場合は、別の配列を追加する必要があります。

if ($entry_id_selector_topic[$counter] == $i) echo ' selected ';

与えて、そのような長い名前は好ましくありません。また、あなたは書くことができます

foreach ($entry_id_selector_topic as $entry_id_selector_topic_value ) :
于 2013-06-22T14:05:26.927 に答える