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
Форумы портала PHP.SU :: Версия для печати :: как сохранить значения списка
Форумы портала PHP.SU » PHP » Программирование на PHP » как сохранить значения списка

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

1. ruslan_sul - 09 Апреля, 2008 - 09:51:02 - перейти к сообщению
На странице выводятся записи из БД
Записи выводятся на основании запроса
В качестве параметра запроса используется поле со списком, кроме того имеются Rаdio Button для задания сортировки.
После выбора значения в списке и порядка сотрировки нажимаем Submit
Все что нужно отображается.
Но вот список и кнопки возвращаются в исходное состояние. Т.е в списке и в radiobutton отображаются значение по умолчанию.
Как сохранить то-что выбрал пользователь при презегрузке страницы.
У меня проблема в том, что нужно еще и предусмотреть Paging по записям
типа след, пред.
А при щелчке на ссылке страница естественно перегружается.
2. philimon - 09 Апреля, 2008 - 10:25:40 - перейти к сообщению
Сохраняйте где-нибудь то, что выбирает пользователь и формируйте список на основании этого.
3. EuGen - 09 Апреля, 2008 - 10:51:35 - перейти к сообщению
Приведу простой пример: ввод текста. Сохранить можно, например, так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $userText=$_POST['userText'];
  4. //..
  5. //работаем с полученным значением - например, делаем запросы к БД
  6. //..
  7. //вывод формы:
  8. echo("
  9. <form action='script.php' method='POST'>
  10. <input type='text' name='userText' value='".$userText."'>
  11. <input type='submit' value='Test script'>
  12. </form>
  13. ");
  14. ?>
  15.  
4. ruslan_sul - 09 Апреля, 2008 - 11:52:14 - перейти к сообщению
В общем примерно понятно.
Тогда со списком делаем примерно так ?
<?PHP
$select=$_POST['select'];
//..
//работаем с полученным значением - например, делаем запросы к БД
//..
//вывод формы:
echo("
<form action='q1.php' method='POST'>
//проверяем значение $select и строим список

<select name='select' size='1'>
<option selected='selected'>иванов</option>
<option>петров</option>
<option>сидоров</option>
</select>
</form>
");
5. EuGen - 09 Апреля, 2008 - 12:14:00 - перейти к сообщению
Нет, со списком проверка не такая. Ведь Вы же заранее не знаете, какой именно элемент будет выделен, так что просто вставить "selected" в текст Вы не сможете. Проще всего сделать циклом, если имеется некий массив, из которого генерируется список.
Например:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $rgList=array(
  4. '1'=>'One',
  5. '2'=>'Two',
  6. '3'=>'Three',
  7. '4'=>'Four'
  8. );
  9. $userSelect=$_POST['userSelect'];
  10. //..
  11. //работаем с полученным значением - например, делаем запросы к БД
  12. //..
  13. //вывод формы:
  14. echo("
  15. <form action='script.php' method='POST'>
  16. <select name='userSelect'>
  17. ");
  18. foreach($rgList as $key=>$value)
  19. {
  20.    $sel=($key==$userSelect)?"selected":"";
  21.    echo("<option value=".$key." ".$sel.">".$value."</option>");
  22. };
  23. echo("
  24. </select>
  25. <input type='submit' value='Test script'>
  26. </form>
  27. ");
  28. ?>
  29.  
6. ruslan_sul - 09 Апреля, 2008 - 12:21:05 - перейти к сообщению
спасибо большое, все теперь понятно

 

Powered by ExBB FM 1.0 RC1