【问题标题】:CakePHP Form Submission with Results in UrlCakePHP 表单提交,结果在 URL 中
【发布时间】:2011-06-05 04:36:17
【问题描述】:

如何使用表单助手提交表单并让该提交的回复有一个包含搜索内容的 url?

我提交此代码:

 <?php echo $form->create('Search', array('action' => 'results', 'type' => 'post')); ?>
    <?php

            $options = array
            (
                'size' => 45,
                'id' => 'search',
                'tabindex' => 1,
                'maxlength' => 250
            );

            echo $form->text('Search.query', $options);
        ?>

所以当我提交带有“Hello World”字样的表单时,我希望生成的 url 是:

 [domain]/searches/results/Hello+World

【问题讨论】:

    标签: php forms cakephp cakephp-1.2


    【解决方案1】:

    您必须进行重定向才能获得这个确切的 URL。使用 GET 提交表单将导致 /searches/results?SearchQuery=Hello+World。就我的口味而言,这已经足够了,但如果您想要一个漂亮的 URL,请在您的控制器中执行此操作:

    class SearchesController extends AppController {
        public function results($query = null) {
            if (!$query && $this->data) {
                $this->redirect(array('action' => 'searches', $this->data['Search']['query']));
            }
    
            // search
         }
    }
    

    请注意,这需要额外往返一次服务器。

    【讨论】:

    • 我在搜索有空格的单词时遇到了问题......似乎很奇怪
    • 特别麻烦什么?例子?
    • 没关系,有一些缓存问题和调试代码搞砸了
    • 还添加了另一个 if 子句,说明如果 $query 和 $this->data 存在,那么它们也需要相等,否则重定向
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多