2013-11-03 41 views
3

我想单击编辑按钮更新表单,然后所有信息都正确显示,但状态值显示的是所有时间相同的打开选项。我不知道为什么它显示相同的开放状态和我的当前状态但它显示了所有的时间开放请帮我解决这个问题,感谢如何使用预先选择的选项显示下拉列表

,这是我的表单代码的用户名显示正确,但状态没有显示正确

<p><label class="field" for="username">UserName:</label> 
    <input name="username" type="text" id="username" value="<?php echo $username; ?>" size="50" /> 
    </p> 
    <p> 

       <label class="field" for="Status">Status</label> 
        <select name="status" id="status" value="<?php echo $status; ?>" > 
         <option value="open">Open</option> 
         <option value="done">Done</option> 
         <option value="pending">Pending</option> 
         <option value="working">Working</option> 
        </select> 
     </p> 

回答

2

使用selected属性。

<select name="status" id="status"> 
    <option value="open" <?php if($status=="open") { echo "selected"; } ?> >Open</option> 
    <option value="done" <?php if($status=="done") { echo "selected"; } ?> >Done</option> 
    <option value="pending" <?php if($status=="pending") { echo "selected"; } ?> >Pending</option> 
    <option value="working" <?php if($status=="working") { echo "selected"; } ?> >Working</option> 
</select> 
+0

我代替我们的代码,但它再次不工作 – msalman

+0

@ user2938105什么样的价值要在'$ status'得到些什么? –

+0

同样开放...... – msalman

0

您需要选定的标签。以这种方式修改您的表格

<select name="status" id="status"> <!-- value removed, there's no use of it here --> 
    <option value="open" <?php if ($status=="open") {echo "selected"}?>>Open</option> 
    <option value="done" <?php if ($status=="done") {echo "selected"}?>>Done</option> 
    .... 
</select> 
0

使用所选属性作为选项。

更改代码

<select name="status" id="status"> 
    <option value="open" <?php selected($status, 'open'); ?>>Open</option> 
    <option value="done" <?php selected($status, 'done'); ?>>Done</option> 
    <option value="pending" <?php selected($status, 'pending'); ?>>Pending</option> 
    <option value="working" <?php selected($status, 'working'); ?>>Working</option> 
</select> 

<?php 
function selected($selected_value, $value) { 
    if($selected_value === $value) { 
     echo 'selected=true'; 
    } 
} 
?> 
+0

不工作bro – msalman

+0

它显示致命错误。 – msalman

1

这是错误的方式,正确的方法是使用这样,

<select name="status"> 
<?php 
$options = array("open","done","pending","working"); 
$selected = "done"; 
foreach($options as $option){ 
    if($selected==$option){ 
     echo '<option value="'.$option.'" selected="selected">'.ucfirst($option).'</option>'; 
    }else{ 
     echo '<option value="'.$option.'">'.ucfirst($option).'</option>'; 
    } 
} 
?> 
    </select> 
+0

亲爱它显示现在做地位,但我在MySQL的许多查询一段时间内的状态正在等待一些时间状态打开,所以我想显示mysql的状态在这里如果MySQL数据的状态做,然后它会显示完成,如果MySQL数据状态为开启然后它会显示出开放明白我的意思 – msalman

+0

OK,电子邮件/陪我聊天[email protected]如果我是在网上,我会聊天否则您发送电子邮件,但我可能需要一些时间在回答如果我正忙于 –

+0

标题问题是,“如何在选择更改中显示正确的值”和标签是JavaScript,PHP,MySQL。这是不正确的。这看起来像JavaScript的变化事件。它应该被改为“如何显示一个预先选定的选项下拉列表” –

1

如果你真的想嵌入在选项标签中的地位,你应该使用'selected'属性来选择标签选项。这是您与正确处理修改后的代码: -

<p><label class="field" for="username">UserName:</label> 
<input name="username" type="text" id="username" value="<?php echo $username;?>"  size="50" /> 
</p> 
<p> 

      <label class="field" for="Status">Status</label> 
       <select name="status" id="status" > 
        <option value="open" <?php echo $status == 'open' ? 'selected' : ''; ?>>Open</option> 
        <option value="done" <?php echo $status == 'done' ? 'selected' : '' ;?>>Done</option> 
        <option value="pending" <?php echo $status == 'pending' ? 'selected' : '' ; ?>>Pending</option> 
        <option value="working" <?php echo $status == 'working' ? 'selected' : '' ; ?>>Working</option> 
       </select> 
    </p> 
+0

dhunju乌尔代码显示只有打开状态我已经做了状态和挂起状态在我的数据,因此它显示正确挂起状态,但它不更新其他状态正确 – msalman

+0

dhunju现在我解决我的datbase一个问题...拼写错误做,而且代码这样做Captial字母错误,谢谢你 – msalman

+0

确实'区分大小写'。大。 – dhunju

相关问题