Как передать в таблицу значение из URL параметра? - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Как передать в таблицу значение из URL параметра?

#1 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 215
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 26 Июль 2019 - 18:33

Здравствуйте, товарищи.

Хочу чтобы в табличке отображались элементы, которые я передаю в GET параметре. При таком URL:

site.ru?ids=5642,452

Такой код не работает (таблица пустая, но генерируется без проблем):

{{$ids = \IPS\Request::i()->ids;}}
{{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records2', $record->url(), array(array(\IPS\Db::i()->findInSet('primary_id_field', array ( $ids )))));}}

Если явно поставить значение GET параметра в код вот так:

{{$ids = \IPS\Request::i()->ids;}}
{{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records2', $record->url(), array(array(\IPS\Db::i()->findInSet('primary_id_field', array ( 5642,452 )))));}}

То все работает. Отсюда вопрос, как мне GET параметр запихнуть в табличку?
0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 4 049
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 588
  • IPB version:I have no IPB
 

Отправлено 27 Июль 2019 - 11:11

array ( $ids )

Вы сюда подставляете значение переменной $ids
Получается
array ( '5642,452' )

Не похоже на то, что нужно.

Используйте explode
0

#3 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 215
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Июль 2019 - 11:58

Пробовал вот так:

{{$ids= explode(',', $ids);}}
{{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records12', $row->url(), array(array(\IPS\Db::i()->findInSet('primary_id_field', $ids ))));}}

И вот так:

{{$ids= explode(',', $ids);}}
{{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records12', $row->url(), array(array(\IPS\Db::i()->findInSet('primary_id_field', array( $ids )))));}}

Получаю всегда исключение типа OutOfRangeException. Проверял через {expression="gettype($ids)"} и уверен, что подставляется array.
0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 4 049
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 588
  • IPB version:I have no IPB
 

Отправлено 27 Июль 2019 - 12:22

{{$where = array();}}
{{if isset(\IPS\Request::i()->ids) and \IPS\Request::i()->ids}}
	{{$ids = !\is_array(\IPS\Request::i()->ids) ? explode(',', \IPS\Request::i()->ids) : \IPS\Request::i()->ids;}}
	{{$where[] = array(\IPS\Db::i()->findInSet('primary_id_field', array_filter($ids, 'is_numeric')));}}
{{endif}}
{{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records12', $row->url(), $where);}}

Можете писать site.ru?ids=5642,452 или site.ru?ids[]=5642&ids[]=452
Если в primary_id_field содержится одно число, то вместо \IPS\Db::i()->findInSet используйте \IPS\Db::i()->in
0

#5 Пользователь не на сайте   vinegredz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 215
  • Регистрация: 17-Январь 14
  • Репутация: 3
  • IPB version:3.4.x
 

Отправлено 27 Июль 2019 - 17:06

Спасибо. Приведенный код полностью рабочий.
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2019 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна