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 :: Помогите разобраться с динамически созданным SELECT`ом

 PHP.SU

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


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

> Без описания
Andrew_li
Отправлено: 07 Июня, 2011 - 09:58:59
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2011  


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




Добрый день, друзья Улыбка

Помогите разобраться с таким вот SELECT`ом:

PHP:
скопировать код в буфер обмена
  1. $FILTER = new Filter($DB);
  2. $filter_list = $FILTER->GetList();
  3. $filter_option_list = '<select id="fil_id" name="filter_id"><option value="0">(Не выбрано)</option>';
  4.  
  5. foreach($filter_list as $filter_id => $filter_data)
  6. {
  7. if($filter_id == $data['filter_id']) $filter_option_list .= '<option value="'. $filter_id .'" selected="selected">'. $filter_data['name'] .'</option>';
  8. else $filter_option_list .= '<option value="'. $filter_id .'">'. $filter_data['name'] .'</option>';
  9. }
  10. $filter_option_list .= '</select>';


При выборе фильтра, выдается сообщение:

PHP:
скопировать код в буфер обмена
  1. if($_POST['paty_radio'] == 1 && $_POST['filter_id'] == $_POST['filter_id'])
  2.                 {      
  3.                         $item_list = $ITEM->GetListFilter('filter_1');
  4.                         AddStatus('note', 'Был выбран фильтр,'. $filter_data['name']);
  5.                 }


Но name выдает самое последнее в списке.
Уже голову сломал.. Не понял

(Отредактировано автором: 07 Июня, 2011 - 10:34:17)

 
 Top
DlTA
Отправлено: 07 Июня, 2011 - 11:20:51
Post Id



Постоянный участник


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


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




Andrew_li пишет:
Но name выдает самое последнее в списке.
А это кто?

смотрите чему у вас равно $data['filter_id'] при сравнении
 
 Top
Andrew_li
Отправлено: 07 Июня, 2011 - 11:48:43
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2011  


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




DlTA пишет:
Andrew_li пишет:
Но name выдает самое последнее в списке.
А это кто?

смотрите чему у вас равно $data['filter_id'] при сравнении


name - это $filter_data['name']

Я занимаюсь PHP недавно, поэтому я может где напутал. Закатив глазки
 
 Top
DlTA
Отправлено: 07 Июня, 2011 - 12:13:51
Post Id



Постоянный участник


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


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




скрипт работает походу нормально
а вот логика скрипта нет.
поясняю:
когда у вас проходит цикл foreach то по его завершению переменная $filter_data равна тому что было ей присвоено при последней итерации
а это и есть последнее значение

запрашивать надо не у $filter_data
а у $filter_list[$_POST['filter_id']]['name'] именно по индексу $_POST['filter_id'] и будет нужная структура
 
 Top
Andrew_li
Отправлено: 07 Июня, 2011 - 13:09:42
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2011  


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




DlTA пишет:

запрашивать надо не у $filter_data
а у $filter_list[$_POST['filter_id']]['name'] именно по индексу $_POST['filter_id'] и будет нужная структура


Спасибо Ха-ха все заработало!!!

P.S. а можно сохранить выбранный select`ы и radio-кнопки после submit`а?
Побывал сессии, в файле сессии данные остаются, а значения сбрасываются. Хотя я наверно $_SESSION не правильно использовал.. Растерялся
Не подскажите, как должен выглядеть $_SESSION для radio-кнопки?
 
 Top
DlTA
Отправлено: 07 Июня, 2011 - 13:19:53
Post Id



Постоянный участник


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


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




можно

так же как и не для radio-кнопки


вопрос в том что у вас в коде.
 
 Top
Andrew_li
Отправлено: 07 Июня, 2011 - 14:00:24
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2011  


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




DlTA пишет:
можно
так же как и не для radio-кнопки
вопрос в том что у вас в коде.


Мое чудо вот: Улыбка
CODE (html):
скопировать код в буфер обмена
  1. <form id="filter" method="post"><table><tr>
  2. <td align="left" valign="middle"><input type="radio" value="1" name="paty_radio" onclick="HideTip(this)">Фильтер1</input></td>
  3. <td>{$filter_option_list}</td><td rowspan="2"><input type="submit" name="send_filter" value="Фильтровать"></td></tr>
  4. <tr>
  5. <td align="left" valign="middle"><input type="radio" value="2" name="paty_radio" onclick="HideTip(this)">Фильтер2</input></td>
  6. <td>{$filter_k_option_list}</td></tr></table></form>


В примерах про сессии $_SESSION присваивается значение, а потом $_SESSION[значение] можно пользоваться, я вроде правильно понял..
А как быть если я не перехожу на страницу, куда мне воткнуть $_SESSION[значение] ума не приложу Однако ?
 
 Top
morosit
Отправлено: 07 Июня, 2011 - 14:23:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


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




форма это же не всё чудо что у вас есть
вставляете
$_SESSION[значение]=значение
после того как определите значение
 
 Top
Andrew_li
Отправлено: 07 Июня, 2011 - 14:37:40
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2011  


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




morosit пишет:
форма это же не всё чудо что у вас есть
вставляете
$_SESSION[значение]=значение
после того как определите значение


Я так полагаю, что это должно выглядеть так:
$_SESSION[$_POST['paty_radio']] = $_POST['paty_radio'];
 
 Top
morosit
Отправлено: 07 Июня, 2011 - 15:21:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


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




Andrew_li
скорее так
PHP:
скопировать код в буфер обмена
  1. $_SESSION['paty_radio'] = $_POST['paty_radio']
 
 Top
Andrew_li
Отправлено: 07 Июня, 2011 - 15:27:54
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2011  


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




morosit пишет:
Andrew_li
скорее так
PHP:
скопировать код в буфер обмена
  1. $_SESSION['paty_radio'] = $_POST['paty_radio']


Спасибо, ну а вот теперь $_SESSION['paty_radio'] нужно как-то использовать.. Потому что в файле сессии данные paty_radio зафиксированы.
 
 Top
DlTA
Отправлено: 07 Июня, 2011 - 15:47:53
Post Id



Постоянный участник


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. <input ... value='<?=@$_SESSION['имя переменной'];?>' ...>

(Добавление)
для select у вас проверка уже есть
только вмето $_POST используйте $_SESSION

для чекбоксов или радио батанов
проверка по типу
if (isset($_SESSION['название']))
// вывод чезкбокса или радиобатана с атриботом checked

(Отредактировано автором: 07 Июня, 2011 - 15:48:38)

 
 Top
Andrew_li
Отправлено: 08 Июня, 2011 - 09:50:34
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2011  


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




DlTA

При
CODE (html):
скопировать код в буфер обмена
  1. value="<?=@$_SESSION['paty_radio'];?>"
выдает ошибку:

Цитата:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in G:\home\****.ru\www\edit.php on line 310


И замена $_POST так же не увенчалась успехом Огорчение
 
 Top
DlTA
Отправлено: 08 Июня, 2011 - 11:04:11
Post Id



Постоянный участник


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


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




посмотрите еще раз свой код
скорее всего налабали чет типа
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   echo '...value="<?=@$_SESSION['paty_radio'];?>" ...';
  3. ?>
а это не правильно
учите синтаксис
предложенный код вставляется в HTML вставки, а не в PHP код.
(Добавление)
тоесть
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  .................
  3. ?>
  4. <input ... value='<?=@$_GET/$_POST/...?>' ......>
 
 Top
Andrew_li
Отправлено: 10 Июня, 2011 - 11:43:42
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2011  


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




HTML код представлен так:

$table =<<<HTML
bla
bla
HTML;

и так:

$table .='<input type="text">bla</input>';

В таком случае, как поступать?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB