Вывод и редактирование данных в выпадающем списке

Тема в разделе "Как сделать...", создана пользователем karen12, 12 сен 2014.

  1. karen12

    karen12 Постоялец

    Регистр.:
    26 фев 2012
    Сообщения:
    73
    Симпатии:
    1
    Есть функция вывода данных

    <?


    $sql = 'SELECT `type` FROM `type`';
    $result = mysql_query($sql);

    // вывод на страницу
    echo '<select name="director_type">';
    print_r($rez_array);

    // проходим весь массив и вывод данных массива с подстановкой.
    while ($myrow = mysql_fetch_array($result,MYSQL_ASSOC)) {
    echo '<option value="' . $myrow['type'] . '`"> ' . $myrow['type'] . ' </option>';
    }
    echo '</select>';


    // Освобождаем память
    mysql_free_result($result);

    // закрываем соединение
    mysql_close($db);

    ?>

    этот код находится внутри <form action="" method="post"> пункт который я выбираю из кода "Form" отправляет к обработчику и он вносит выбранный пункт из кода в в таблицу "reception" в поле "director_type" (есть в коде). а пункты выводятся в код из таблицы "type" поле "type", тепер как вывести для редактирования выбранный и добавленный в таблицу "reception" пункт в селект чтобы по умолчению там стоял именно тот пункт который я внес в "reception"?

    Есть вариант но этот вариант для статичных значений select option.

    <option value="Твердый модель ИОЛ"<?php if ($row[iolodmod] == 'Твердый модель ИОЛ') echo ' selected="selected"'; ?>>Твердый</option>


    Не знаю как поправить для динамичных значений-типа того что приведено наверху
     
  2. Demian12

    Demian12 Создатель

    Регистр.:
    13 авг 2014
    Сообщения:
    12
    Симпатии:
    9
    Если предположить, что в reception есть поле id, то примерно так:
    PHP:
    $sql 'SELECT `type` FROM `type`';
    $sql2 'SELECT `director_type` FROM `reception WHERE `id`=118';
    $result mysql_query($sql);
    $result2 mysql_query($sql2);
    $old_type mysql_fetch_array($result2,MYSQL_ASSOC)['director_type'];

    // вывод на страницу
    echo '<select name="director_type">';
    print_r($rez_array);

    // проходим весь массив и вывод данных массива с подстановкой.
    while ($myrow mysql_fetch_array($result,MYSQL_ASSOC)) {
    echo 
    '<option value="' $myrow['type'];
    if (
    $myrow['type'] == $old_type)
        echo 
    ' selected="selected"';
    echo 
    '"> ' $myrow['type'] . ' </option>';
    }
    echo 
    '</select>';

     
  3. karen12

    karen12 Постоялец

    Регистр.:
    26 фев 2012
    Сообщения:
    73
    Симпатии:
    1

    Не работает, выводит превое значение поля type
     
  4. Demian12

    Demian12 Создатель

    Регистр.:
    13 авг 2014
    Сообщения:
    12
    Симпатии:
    9
    а id (которое в примере 118) заменили на id редактируемого элемента?
     
  5. karen12

    karen12 Постоялец

    Регистр.:
    26 фев 2012
    Сообщения:
    73
    Симпатии:
    1
    да
     
  6. Demian12

    Demian12 Создатель

    Регистр.:
    13 авг 2014
    Сообщения:
    12
    Симпатии:
    9
    Там опечатка, сорри. Правильная строчка:
    Код:
    SELECT `director_type` FROM `reception` WHERE `id`=118
     
  7. karen12

    karen12 Постоялец

    Регистр.:
    26 фев 2012
    Сообщения:
    73
    Симпатии:
    1
    я заметил и поправил эту отпечатку, все равне ен работает
     
  8. Demian12

    Demian12 Создатель

    Регистр.:
    13 авг 2014
    Сообщения:
    12
    Симпатии:
    9
    Надо попробовать сделать запросы в SQL клиенте, потом поставить отладку. По идее, в $old_type должен попасть тип редактируемой записи и тогда должен добавиться в соответствующую option вывод selected="selected"
     
  9. karen12

    karen12 Постоялец

    Регистр.:
    26 фев 2012
    Сообщения:
    73
    Симпатии:
    1
    я навичек, по этому все это для меня трудно сделать
     
  10. Demian12

    Demian12 Создатель

    Регистр.:
    13 авг 2014
    Сообщения:
    12
    Симпатии:
    9
    Тогда поставьте после строки $old_type=... такую строчку:
    PHP:
    echo '<!--' .$old_type.'-->';
    после чего вытащенное из базы значение будет записано в комментарий в HTML-код страницы. После чего покажите этот кусочек (<select> со всеми <option> и комментарий перед ним)