2014-12-20 75 views
1

我儘量讓我的下拉列表中選擇只有當錯誤發生了,這是我的腳本粘下拉菜單中選擇僅如果有誤差提交

<select name="usertype" id="usertype" class="form-control"> 
    <option value="">Please choose the user right</option> 
    <option value="admin"<?php if(isset($error) 
     && $_POST['usertype'] == 'admin' ? ' selected="selected"' : '');?>> 
     Admin 
    </option> 
    <option value="author"<?php if(isset($error) 
     && $_POST['usertype'] == 'author' ? ' selected="selected"' : '');?>> 
     Author 
    </option> 
    <option value="public"<?php if(isset($error) 
     && $_POST['usertype'] == 'public' ? ' selected="selected"' : '');?>> 
     Public 
    </option> 
</select> 

誰能告訴我正確的方法是什麼?因爲它不起作用。

回答

1

你在混合你的三元,它的(condition) ? true : false。這裏有一個修訂的一個:

<?php $usertype = array('admin', 'author', 'public'); ?> 
<select name="usertype" id="usertype" class="form-control"> 
    <option disabled selected>Please choose the user right</option> 
    <?php foreach($usertype as $val): ?> 
     <option 
      value="<?php echo $val; ?>" 
      <?php echo (isset($error, $_POST['usertype']) && $_POST['usertype'] == $val) ? 'selected="selected"' : ''; ?> 
     > 
      <?php echo ucfirst($val); ?> 
     </option> 
    <?php endforeach; ?> 
</select> 
+0

感謝您的解釋和它的工作。 – Kyo

+0

@Kyo很高興這有幫助 – Ghost

0

嘗試這個代碼:

<select name="usertype" id="usertype" class="form-control"> 
    <option value="">Please choose the user right</option> 
    <option value="admin" <?php echo ((isset($error) && $_POST['usertype'] == 'admin') ? ' selected="selected"' : '');?>>Admin</option> 
    <option value="author" <?php echo ((isset($error)&& $_POST['usertype'] == 'author') ? ' selected="selected"' : '');?>>Author</option> 
    <option value="public" <?php echo ((isset($error) && $_POST['usertype'] == 'public') ? ' selected="selected"' : '');?>>Public</option> 
</select> 
+0

對不起,它不工作@Munshi。 – Kyo