2013-11-03 2 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

Заголовок вопроса «показать правильное значение в select change», а теги - javascript, php, mysql. Это неверно. Это похоже на событие javascript on change. Он должен быть изменен на что-то вроде: «Как показать раскрывающийся список с предварительно выбранным параметром» –

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 ur code показывается только открытое состояние, я сделал статус и ожидающий статус в своих данных, чтобы он отображал ожидающий статус правильно, но он не обновляет другой статус правильно – msalman

+0

dhunju сейчас я решаю проблему ... ошибка орфографии в моей базе данных Готово и в коде, сделанном так Captial письмо ошибка спасибо – msalman

+0

да действительно «чувствительный к регистру». Великий. – dhunju

Смежные вопросы