【问题标题】:How can I use GET forms with CodeIgniter?如何在 CodeIgniter 中使用 GET 表单?
【发布时间】:2010-05-03 01:50:40
【问题描述】:

我知道 CI 主要是基于 URL 段的,但我想要一个查询字符串:blahblah.com/search.html?q=keyword

当我尝试 $this->input->get( "q" ) 时,它返回空。有什么路线需要配置吗?

【问题讨论】:

    标签: codeigniter get


    【解决方案1】:

    【讨论】:

    • 一个表单中有多个输入..那么如何处理呢?
    • 他可以将其作为提交操作 =“post” 然后重定向到 /search/keyword 但这样做有什么意义?
    【解决方案2】:

    您必须启用查询字符串

    CodeIgniter 可选择支持此功能,可以在您的 application/config.php 文件中启用。如果你打开你的配置文件,你会看到这些项目:

    $config['enable_query_strings'] = 错误;
    $config['controller_trigger'] = 'C';
    $config['function_trigger'] = 'm';

    如果您将“enable_query_strings”更改为 TRUE,此功能将激活。然后,您的控制器和函数将可以使用您设置为调用控制器和方法的“触发器”字来访问:

    index.php?c=controller&m=method

    示例:index.php?c=products&m=view&id=345

    http://codeigniter.com/user_guide/general/urls.html

    【讨论】:

    • 这会产生一些令人作呕的 URL,并且会破坏您的整个应用程序,只是为了让一个搜索表单正常工作。
    • 非常真实的菲尔,我刚刚回答了他的问题:-) 下次我也会建议
    【解决方案3】:

    在 CodeIgniter 中获取查询字符串的最佳方法是使用 Google。每天至少 10 次在论坛、此处和推特上提出(并回答)这个问题。

    有几种方法,但最近我很喜欢以下方法:

    http://www.dijexi.com/2009/08/how-to-mix-segment-and-query-string-in-codeigniter/

    与其他方法相比,我更喜欢这种方法,因为它不会像其他一些方法那样对应用程序产生影响,并且不需要任何疯狂的黑客攻击来使其工作。

    如果您希望整个应用程序都支持 $_GET,只需将 parse_str 放入 MY_Controller 或 pre_controller 挂钩。

    【讨论】:

    • 谢谢菲尔。这里的问题是,当我设置为“PATH_INFO”时,我的路由似乎都不起作用。
    • 啊,太好了,您正在使用基于 CGI 的 PHP 安装?尝试添加 ini_set('cgi.fix_pathinfo', 1);到您的 index.php。如果做不到这一点,请修改您的 .htaccess 以使用 RewriteRule ^(.*)$ index.php?/$1 [L] . 注意 ?在 /$1 之前,这是基于 CGI 的安装所必需的。
    • 此链接发出网络钓鱼警告
    • 链接已失效@PhilSturgeon,这是更新的:dijexi.com/how-to-mix-segment-and-query-string-in-codeigniter,既然我在这里,如果我使用POST 来解决这个问题呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 2018-07-21
    • 2015-07-02
    • 1970-01-01
    • 2016-02-04
    • 2016-11-27
    相关资源
    最近更新 更多