【问题标题】:CodeIgniter 'get' form action?CodeIgniter 'get' 表单动作?
【发布时间】:2012-10-08 21:58:38
【问题描述】:

我在一个页面(视图)上有一个表单,它的 URL 是:

www.example.com/page?item=samsung-galaxy-nexus

我在这个页面(视图)上的表单是:

<form name="formsearch" action="<?php echo site_url(uri_string()); ?>" method="get">
<input id= name="search"name="search" class="filter-search" type="text" placeholder="Search Me"/>
<button type="submit" class="filter-button">Search</button>
</form>

假设我在搜索中输入“Microsoft”并按 Enter。我需要它去的 URL + 查询字符串是:

www.example.com/page?item=samsung-galaxy-nexus&search=microsoft

我可以让它与普通的 PHP 一起工作,但我似乎无法让它在 CodeIgniter 中工作。我还进入了 config.php 并将查询 url 设置为 true。

还需要注意的是,如果当前的URL是:

www.example.com/page?item=samsung-galaxy-nexus

如果我这样做&lt;?php echo current_url(); ?&gt;,它会输出

www.example.com/?page

注意 ?换了地方

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    我根本无法让它工作。最后我使用了一个 CodeIgniter 3rd Party Helper 发现 here:

    【讨论】:

      【解决方案2】:

      转到:application/config/config.php(大约在第 72 行)并更改

      $config['uri_protocol'] = 'AUTO';
      

      $config['uri_protocol'] = 'PATH_INFO';
      

      $config['uri_protocol'] = 'QUERY_STRING';
      

      它应该对你有用,如果没有尝试 'REQUEST_URI' 或 'ORIG_PATH_INFO'

      如果你仍然有这个问题,你可以像这样简单地重建 $_GET 请求(在你的基本 Controller 的构造函数中):

       parse_str($_SERVER['QUERY_STRING'],$_GET);  
      

      【讨论】:

      • 如果我把它放到动作路径中,在按下提交按钮之前页面甚至不会加载任何东西
      • 好的,我得到了 parse_str($_SERVER['QUERY_STRING'],$_GET);有点工作..如果我从这里运行搜索:www.example.com/page?item=samsung-galaxy-nexus,它将加载 www.example.com/page?search=microsoft。但是它仍然错过了我原来的查询字符串
      猜你喜欢
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多