2015-06-02 6 views
3

Я пытаюсь получить свой вариант выбора, чтобы показать выбранную категорию из моей БД в раскрывающемся списке. Я могу только показать это, когда я нажму кнопку отправки.Как установить выбранную опцию <select>

<?php 

    (isset($_POST["kategori"])) ? $kategori = $_POST["kategori"] : $kategori=1; 
    $sql = "SELECT * FROM kategori" 
    $result = mysqli_query($db, $sql); 
    while($produkt = mysqli_fetch_array($result)) { 

?> 

<option <?php if ($kategori == $produkt['kategori_id']) echo 'selected'; ?> 
value="<? echo $produkt['kategori_id']; ?>"> 
<? echo $produkt['kategori_navn']; ?></option> 

<?php 
} 
?> 

Видимо я получаю значение из POST, и именно поэтому он сначала показывает категорию, когда я ударил представить.

Мне нужно сделать выбор из моей базы данных с идентификатором продукта продукта и использовать его идентификатор, чтобы отметить, какая категория установлена.

И я не могу понять, как это сделать.

+4

Что такое '$ kategori' –

+0

Ваш код, кажется, хорошо. Посмотрите на данные – splash58

+0

Он содержит значение $ _POST и используется для обновления БД «UPDATE produkt SET fk_kategori_id = '$ kategori' WHERE produkt_id = $ id" – nireck

ответ

2

Попробуйте

$sql = "SELECT * FROM kategori" 
$result = mysqli_query($db, $sql); 

while($produkt = mysqli_fetch_array($result)) { 

    if ($kategori == $produkt['kategori_id'] ) : ?> 
     <option selected="selected" value="<?=$produkt['kategori_id']; ?>"><?=$produkt['kategori_navn']; ?></option> 
    <?php else: ?> 
     <option value="<?=$produkt['kategori_id']; ?>"><?=$produkt['kategori_navn']; ?></option> 
    <?php endif; ?> 

<?php } ?> 

Где $kategori переменная, которая имеет ранее выбранное значение параметра.

+0

Работал как очарование! :-) – nireck

+0

Thank you mate .. :) –

0

Просто попробуйте добавить так:

<option <?php if ($kategori == $produkt['kategori_id']) ?> value="<? echo $produkt['kategori_id']; ?>" selected="selected"><? echo $produkt['kategori_navn']; ?></option> 
+0

Все выбранные вами параметры будут выбраны, и только один из них будет иметь значение. – Kyborek

+0

он использует условие знать, нормально я согласен, мне нужно дать подробное объяснение .... –

-1

Попробуйте запрос, как это: $ SQL = "SELECT * FROM kategori где kategori_id IN ($ Категория)";

вы автоматически получаете совпадающую категорию, которую вы можете выбрать его без использования во время цикла

+0

OP хочет вывести все параметры и выбрать тот, который был опубликован. В вашем коде будет отображаться только один параметр, который сделает выбор бесполезным. – Kyborek

+0

Это также можно сделать, просто нажав другой запрос, используя NOT ... так что вывод будет содержать согласованные и непревзойденные параметры. –

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