【问题标题】:PHP Display Query Strings as Search TermsPHP 将查询字符串显示为搜索词
【发布时间】:2018-10-19 18:16:36
【问题描述】:

使用 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 初学者并自学

【问题讨论】:

  • 你已经回答了你的问题。

标签: php arrays forms codeigniter query-string


【解决方案1】:

一次收集所有 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>";
}

【讨论】:

    【解决方案2】:

    由于$this-&gt;input-&gt;get()/post()/etc 如果未设置则返回 false,因此您可以轻松检查和/或访问 get 变量。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多