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" : ""

如果该条件为真,它将返回 "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 回答