PHP MySQL 最佳实践秀在下拉列表中选择


php mysql best practice show selected in dropdown

>我有一个相当简单的问题。 我有一个值为 1 到 10 的选择下拉列表。 这是一个编辑屏幕,因此用户已经选择了应选择的值。 我给他们改变它的机会。 所以我需要做的就是插入选项值中选择的单词。 为了完成这个简单的任务,我一直在做一堆不优雅的事情。 是否有最佳实践或简单的方法来做到这一点。 如果这样做并创建 10 个新变量,那么执行所有这些操作似乎不必要的开销。 请注意,出于将 html 与 php 逻辑分开的原因,我不想按顺序写出选项值,我将 html 放在一个单独的区域中,只需要在适当的位置设置选择的变量。

if ($row['points']==1){
$select1 = "selected"}
if ($row['points']==2){
$select2 = "selected"}
//values 3 through 9
if ($row['points']==2){
$select2 = "selected"}

echo '<select name="points">';
echo '<option value = 1'. $select1.'>1</option>';
echo '<option value=2'. $select1.'>2</option>';
//values 3 through 9
echo '<option value=10'.$select10.'>10</option>';
echo '</select>';
for ($x = 1; $x <= 10; $x++) {
   echo "<option value=$x" . ($row['points'] == $x ? ' selected' : '')
      . ">$x</option>';
}

for 循环对此很有用,带有内联 if else 语句来测试所选情况

echo '<select name="points">';
for ($i=1; $i<=10; $i++) {
   echo "<option value='{$i}'".($row['points']==$i ? ' select="selected"':'').">{$i}</option>";   
}
echo '</select>';

因为您使用的是单个可选列表(不允许多个选择),即一次只能选择一个.. 查找 http://fi.php.net/str_replace

echo str_replace("value='".$selected_value."'", "value='".$selected_value."' selected", "<option value='1'>1</option><option value='2'>2</option> ....");

我使用 jquery 和一个隐藏字段来启动<select>的选定值。

.html:

<input type=hidden name=points value=1>
<select name="points">
  <option value=1>1</option>
  <option value=2>2</option>
</select>

.js:

$('input[type=hidden]').each(function(){
            var e = $(this);
            var name = e.attr("name");
            var val = e.val();
            if(name!="")
            {
                e.parent().find('select[name='+name+']').val(val);              
            }       
        });