2014-02-07 5 views
1

У меня есть база данных для категорий, где я есть идентификатор и имя строкКак получить выбранное значение из выпадающего списка на пост редактирования

<select name="category_id"> 
    <option value="<?php if($category_id === 1) { echo 'selected';} ?>">Electronics</option> 
    <option value="<?php if($category_id === 2) { echo 'selected';} ?>">Automotive</option> 
    </select> 

по какой-то причине это не показывает, какой был выбран при попытке редактирования представленный после

и я сделать извлечь cATEGORY_ID так:

$res6 = mysql_query("SELECT * FROM `posts` WHERE `id` = '" . $id . "' LIMIT 1"); 

    if(mysql_num_rows($res6) > 0){ 
     while($row6 = mysql_fetch_assoc($res6)){ 
      $id = $row6['id']; 
      $category_id = $row6['category_id']; 
      $price = $row6['price']; 
      $cover = $row6['cover']; 
      $title = $row6['title']; 
      $description = $row6['description']; 
      } 
    } 
+0

Вы имели в виду 'select =" selected "' вместо 'value =" selected "' возможно? – Marty

+0

проблема решена. пришлось вынуть его из значения = "" –

ответ

1

Я считаю, что результаты MySQL всегда возвращаются как строки, так $category_id === 1 будет быть ложным.

Либо попробовать $category_id === "1" или $category_id == 1

Кроме того, вам нужно повторить selected="selected вне атрибута value

+0

хорошая точка. что помогло решить проблему! –

4

Я думаю, что опция аргумент выбран

<option selected="selected"> </option> 
+0

Хороший улов, я полностью забыл об этом. – helion3

+0

Мое решение было

+0

@ helion3 да решение не совсем корректно, без остальной части объяснения, хорошего ответ – clancer

0

Вы также можете попробовать, как это также.

<select name="category_id"> 
<?php 
    $cats = array("1"=>"Electronics", "2"=>"Automotive"); 
    foreach($cats as $k=>$cat){ 
     if($k == $category_id) 
      echo "<option value='{$k}' selected='selected'>{$cat}</options>"; 
     else 
      echo "<option value='{$k}' >{$cat}</options>"; 
    } 
?> 
</select> 
Смежные вопросы