使用php在下拉菜单中“选中”

时间:2013-06-22 09:36:57

标签: php

$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 hovewer selected是默认值。

更改为此.($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]。

现在看来问题很清楚。

3 个答案:

答案 0 :(得分: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]

没有解释

答案 1 :(得分:1)

我认为它应该是:

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

如果该条件为真,则返回&#34;选择&#34;否则它将返回&#34;&#34; 。

答案 2 :(得分:1)

  echo '<option value="'.($i1 == $entry_id_selector_topic) ? "selected" : "".'>'.$opt1 .'</option>';

试试这个