【问题标题】:question about CodeIgniter urls关于 CodeIgniter 网址的问题
【发布时间】:2011-07-17 09:30:57
【问题描述】:

我正在使用一个使用 CodeIgniter 框架编写的应用程序(博客),并希望通过在我的博客 url 末尾添加一个字符串来从我的浏览器位置栏中搜索我的博客,如下所示:

http://mysite.com/blog/index.php/search...

正如您在上面的示例中看到的那样,我不太确定如何在搜索部分之后格式化 URL 的其余部分,所以我希望这里的人能够指出我正确的方向。

如果有帮助的话,这就是搜索框的表单。

form class="searchform" action="http://mysite.com/blog/index.php/search" method="post">
  <input id="searchtext" class="search_input" type="text" value="" name="searchtext">
  <input type="submit" value="Search" name="Search">
</form>

谢谢, 标记

【问题讨论】:

    标签: forms url codeigniter


    【解决方案1】:

    由于您的表单发布到http://mysite.com/blog/index.php/search,我假设此“搜索”控制器的默认功能是您尝试向其提交数据的功能。我认为最简单的方法是在您发布到的控制器方法中获取发布数据。示例:

    function search()
    {    
         $search_params = $this->input->post('search_text');
    }
    

    然后,您会将用户输入的任何内容存储为 $search_params,然后您可以从那里执行操作。我是不是误会你在问什么?

    【讨论】:

    • 啊你这一切是什么意思?我不是程序员,所以我不知道这些东西是什么意思。我在哪里可以找到这些东西,我需要改变什么才能让它像我想要的那样工作。我想要做的就是让我的博客可以从 google 之类的 url 使用mysite.com/blog/index.php/search&q=what_I_am_looking_for 之类的 url 搜索,但这不起作用。
    【解决方案2】:

    您似乎在讨论两种不同的方法。如果您想提出请求 mysite.com/blog/index.php/search&q=what_I_am_looking_for

    这将调用搜索控制器的默认方法(默认为索引)。如果您想使用 URL 来传递类似的参数,您可以转到搜索控制器中的函数并执行以下操作: print_r($this->input->get('q'));

    这将打印出“what_am_I_looking_for”。

    在我看来,更简单的方法是: 1. 使用您在上面粘贴的 HTML 内容创建一个名为“search_view”的视图,并具有“action”http://www.mysite.com/blog/index.php/test/search

    表单
    1. 创建一个名为“Test”的控制器,如下所示:

      class Test extends CI_Controller {
      
      function search()
      {
          $search = $this->input->post('searchtext');
          print_r($search);
      }
      
      public function display_search()
      {
          $this->load->view('search_view');
      }
      }
      
    2. 在浏览器中访问http://www.mysite.com/blog/index.php/test/display_search。这应该会向您显示您放置在 search_view.php 中的表单。提交表单后,您应该被发送到搜索功能并打印出变量 $search,该变量将包含您在该表单上提交的任何文本。

    如果这不是您要找的东西,那么恐怕我不明白您的问题。

    【讨论】:

    • 那么让我试着换一种说法。如果您访问 google.com,您知道您可以在搜索框中输入搜索查询并按 Enter(或单击按钮),您的查询将被执行,您将看到搜索结果。好吧,您也可以通过在浏览器的 url 中输入查询来执行完全相同的操作,例如 google.com/search?&q=something 如果您转到该链接,这将与您在搜索框中手动输入搜索并按下完全一样按钮。这就是我想做的所有事情,除非我用 codeigniter 尝试它不起作用。
    • 我意识到完全相同的格式行不通,但我已经尝试过(无济于事)大量的 url 组合,我要么收到 404 错误,要么收到有关 url 中非法字符的其他错误,所以所有我需要知道我需要添加到我的网址末尾的魔法格式是什么,以便让它像谷歌网址一样工作?
    猜你喜欢
    • 2013-09-07
    • 2016-07-13
    • 2011-08-19
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2011-09-23
    相关资源
    最近更新 更多