繁体   English   中英

Ajax搜索表单Div分页-PHP-CakePHP

[英]Ajax Search Form Div Pagination - PHP - CakePHP

我曾浏览过许多文章Stack OverFlow,但都没有解决我的问题。 我只想将Ajax与Cake php一起使用以刷新包含分页结果的DIV。

注意:我包括了jQuery库。 我调用了RequestHandler组件:

public $components = array('RequestHandler');

public function beforeFilter() {
    if($this->RequestHandler->isAjax()){
        $this->layout=null;
        Configure::write('debug', 0);
    }
}

我检查了布局文件夹中是否存在“ ajax.ctp”

这是我的搜索功能:

public function searchIndex(){
        //debug($this->request->data); die;

        $search = $this->request->data['Concessionnaire']['search'];

        $this->Paginator->settings = array(
            'conditions' => array('Concessionnaire.ville LIKE' => '%'.$search.'%'),
            'limit' => 5
        );
        $data = $this->Paginator->paginate('Concessionnaire');
        $this->set('concessionnaires', $data);
        $this->render('index');

    }

浏览次数:

<div class="row">
    <div class="large-12 columns">
        <div class="panel">
            <h4>Recherchez une ville :</h4>
            <?php echo $this->Form->create('Concessionnaire',array('id' => 'textBox', 'type' => 'post','url' => array('controller' => 'concessionnaires', 'action' => 'searchIndex'))); ?>
            <?php echo $this->Form->input('search', array('label'=>"",'placeholder'=>'Tapez le nom d\'une ville, puis la touche Entree de votre clavier' ,'id'=>'search')); ?>
            <?php echo $this->Form->end(); ?>
        </div>
    </div>
</div>      

<div class="row">
    <div class="large-12 columns">
        <div class="panel" id="conssR">
            <!-- generation vignettes -->
            <?php foreach ($concessionnaires as $concessionnaire): ?>
                <div class="panel conssPanel radius"> 
                    <h4><b><?php echo h($concessionnaire['Concessionnaire']['nom']); ?></b></h4>
                    <div class="row">
                        <div class="large-6 columns" style="padding-left: 70px; font-size: 20px;">
                            <?php echo h($concessionnaire['Concessionnaire']['adresse']); ?><br>
                            <?php echo h($concessionnaire['Concessionnaire']['cp']); ?>
                            <?php echo h($concessionnaire['Concessionnaire']['ville']); ?>
                        <!-- <p>It's a little ostentatious, but useful for important content.</p> -->
                        </div>
                        <div class="large-6 columns" style="font-size: 20px; text-align: center;">
                            Tel: <?php echo h($concessionnaire['Concessionnaire']['tel']); ?><br>
                            Site:  <?php echo h($concessionnaire['Concessionnaire']['website']); ?>
                        </div>  
                    </div>

                    <?php
                        // $map_id = "map_canvas";
               //           $marker_id = 1;
               //           $position = "rue du depot, 62000 ARRAS";
               //           echo $this->GoogleMap->addMarker($map_id, $marker_id, $position);
                    ?>
                </div>
            <?php endforeach; ?>
        </div>
    </div>    
</div>

我想用“ Concessionnaires”形式输入的字符串结果重新加载DIV“ #conssR”。 现在,当我写一些有效的东西时,控制器会通过刷新页面向我显示结果,但我只想给DIV充电。

预先感谢您的帮助

   $this->Paginator->options(array(
        'update' => '#conssR',
        'evalScripts' => true
    ));

上面的代码不是功能的一部分,它是View文件夹中View文件的一部分,它创建正确的JavaScript来更新div。

检查: http : //book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html这是一个帮助程序,您认为该帮助程序代码

  if($this->request->is('ajax'))
  {
       $this->render('/Elements/ajax');
  }

上面的代码用于在View / Elements文件夹中呈现您当前未执行的ajax.ctp。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM