Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Загрузка формы с заполненными селектами

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Но: значения селектов берем из БД
alsio
Отправлено: 24 Января, 2013 - 20:05:18
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Есть страница new.php с формой (селектом). Селект с чтением value и option из БД.

PHP:
скопировать код в буфер обмена
  1.  
  2. // Выводим значения селекта "Статус"
  3. $stat = mysql_query ("SELECT value, soption FROM stat_status ORDER BY sort ASC");
  4.  
  5. <select name="status">
  6. <? while ($mas = mysql_fetch_array($stat)) { ?>
  7. <option value="<?=$mas['value'] ?> "><?=$mas['soption'] ?>  
  8. <? } ?>
  9. </select>
  10.  


Заполнили форму, сохранили результат (value) в БД.

Как теперь сделать update.php, который загружает эту же форму, но уже с выбранным (selected="selected") ранее результатом, ну и соответственно с чтением value и option из БД.

Ранее у меня такое было реализовано, но там value и option брались не из БД, а были прописаны сразу в html. Код в update.php выглядел так:

PHP:
скопировать код в буфер обмена
  1.  
  2. <select name=\"status\">\n";
  3.             echo "<option value=\"Новое\"\n";
  4.             if ($row['status'] == 'Новое' ) echo ' selected="selected"';
  5.             echo ">Новое</option>\n";
  6.             echo "<option value=\"В работе\"\n";
  7.             if ($row['status'] == 'В работе' ) echo ' selected="selected"';
  8.             echo ">В работе</option>\n";
  9.             echo "<option value=\"Заказ з/ч\"\n";
  10.             if ($row['status'] == 'Заказ з/ч' ) echo ' selected="selected"';
  11.             echo ">Заказ з/ч</option>\n";
  12.             echo "<option value=\"Готово\"\n";
  13.             if ($row['status'] == 'Готово' ) echo ' selected="selected"';
  14.             echo ">Готово</option>
  15.                </select>
  16.  


Прошу помощи. Растерялся

(Отредактировано автором: 24 Января, 2013 - 20:08:17)

 
 Top
Господин Соколов
Отправлено: 25 Января, 2013 - 09:16:50
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Окт. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




В чем сложность то? все также как в вашем примере, только сравнивать надо с переменной полученной из формы:
echo "<option value=\"Новое\"\n";
if ($row['status'] == $_POST[имя_переменной] ) echo ' selected="selected"';
echo ">Новое</option>\n";
 
 Top
alsio
Отправлено: 25 Января, 2013 - 12:52:57
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Господин Соколов, думаю, что не так. Как я понимаю, в коде вообще не может быть прямо прописано значений (value=\"Новое\" и т.д.), т.к. они изначально берутся из БД.

Должно быть как-то так:
if ($row['status'] == список значений из БД (типа $mas['value']) ) echo ' selected="selected"';

Т.е. мы сравниваем то, что сохранил пользователь со списком значений из БД.
 
 Top
alsio
Отправлено: 29 Января, 2013 - 11:44:02
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Итак, путем размышлений, получилось реализовать задуманное следующим образом:

PHP:
скопировать код в буфер обмена
  1.  
  2. <? php
  3. $stat = mysql_query ("SELECT value, soption FROM stat_status ORDER BY sort ASC");
  4.  
  5. <select name=\"status\">\n";
  6. while ($mas = mysql_fetch_array($stat)) { ?>
  7. <option value="<?=$mas['value'] ?> "
  8. <? if ($row['status'] == $mas['value']) echo ' selected="selected"';
  9. echo ">"?> <?=$mas['soption'] ?><? echo "</option> \n";
  10. }
  11. echo "</select>
  12. ?>
  13.  


Получается, что сам и ответил на свой вопрос... Улыбка
 
 Top
esterio
Отправлено: 29 Января, 2013 - 11:47:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Поздравляю Вас!!!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB