PHP отображает строки запроса как условия поиска - PullRequest
0 голосов
/ 09 мая 2018

Используя Codeigniter 3 и PHP, я разработал форму поиска, используя действие get . Форма имеет четыре возможных критерия поиска и после отправки они выглядят как строки запроса в URL следующим образом:

results/?q=law&coll_id=2&start_year=1200&end_year=1500

На странице результатов поиска я хотел бы отобразить эти «условия поиска» для пользователей, показывая именно то, что они искали.

Например;

Hello, you searched for the following;

Search Term: `law` 
Collection ID: `2`
Start Year: `1200` 
End Year: `1500`

Когда я var_dump($this->input->get()) это то, что я вижу;

array(4) { ["q"]=> string(3) "law" ["coll_id"]=> string(1) "2" ["start_year"]=> string(4) "1200" ["end_year"]=> string(4) "1500" }

Обратите внимание, что поиск возможен только по одному критерию, не все четыре обязательны, поэтому может быть нулевым.

Как я могу отображать условия поиска для пользователя, как это?

Предположительно, мне нужно перебрать массив, чтобы проверить, не являются ли они нулевыми, а затем сделать что-то еще?

Любой совет приветствуется. Я начинающий в PHP и учу себя

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Соберите все элементы GET одновременно и проверьте для каждого ожидаемого индекса, эхо, если индекс найден.

$search_items = $this->input->get();

if(isset($search_items['q']))
{
    echo "Search Term: " . $search_items['q']."<br>";
}

if(isset($search_items['coll_id']))
{
    echo "Collection ID: " . $search_items['coll_id']."<br>";
}

if(isset($search_items['start_year']))
{
    echo "Start Year:: " . $search_items['start_year']."<br>";
}

if(isset($search_items['end_year']))
{
    echo "End Year: " . $search_items['end_year']."<br>";
}
0 голосов
/ 09 мая 2018

Поскольку $this->input->get()/post()/etc возвращает значение false, если не установлено, вы можете легко проверить и / или получить доступ к переменным получения.

if($this->input->get('q'))
{
   echo $this->input->get('q');
}

if($this->input->get('coll_id'))
{
   echo $this->input->get('coll_id')
}
...