Проверка AJAX в поиске

Я новичок в Yii, у меня две таблицы. мастер_клиент, мастер_клиент. В клиентской модели в представлении у меня есть окно поиска. Если я ввожу несколько букв в поле поиска, оно должно автоматически получать данные и выдавать результаты от master_customers (например, предложения Google). Я установил отношения в клиентской модели с master_customer. пожалуйста, помогите мне с кодом. заранее спасибо

Действие КОНТРОЛЛЕРА:

public function actionIndex()
    {

            $criteria = new CDbCriteria();
            if(isset($_GET['q']))
    {
      $q = "%".$_GET['q']."%";
      $criteria->condition = 'cust_name='.$q;
           $arrTier3 = MasterCustomers::model()->findAll($criteria);
      //$criteria->compare(MasterCustomers::model()->cust_name,$q, true);

      //$criteria->compare('$data->customers->cust_name', $q, true, 'OR');
      print_r($arrTier3);
      die();

    }

    $dataProvider=new CActiveDataProvider('Host', array('criteria'=>$criteria));

                $this->render('index',array(
            'dataProvider'=>$dataProvider,


        ));

    }

Посмотреть :

<!--Content-->
<div id="content">
    <div style="padding: 10px;">
        <a href="<?php echo $this->createUrl('/Controller/create');?>" title="Create New Host" class="btn btn-primary circle_ok" style="text-decoration: none;" >Add New Host to Customer</a>

    <div style="float:right">
                         <?php
                            echo CHtml::link('Upload Customer CSV', array('/Controller/uploadCustomers'), array(
                            'onclick'=>'return hs.htmlExpand(this, { objectType: "iframe", wrapperClassName: "full-size", align: "center" } )',
                            'class'=>'btn btn-primary',
                            'id'=>'upload_link',
                            ));
                         ?>                          
                     </div>
    </div>
    <h3><?php echo $title; ?></h3>


    <div class="innerLR">
        <div class="row-fluid">
<?php 
$obj=$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,

    //'afterAjaxUpdate'=>'\'changeTRColor()\'',
    //'itemView'=>'_view',
    'columns'=>array(

                array(            // display 'create_time' using an expression
                            'name'=>'name',
                                            'value'=>'$data->host_name',
                ),
                array(
                            'name'=>'serviceId',
                            'value'=>'$data->host_serviceid',
                ),

                array(
                                            'name'=>'customer',
                                            'value'=>'$data->customers->cust_name',
                ),
                array(
                                    'class'=>'CButtonColumn',
                                    'template'=>'{delete}{update}',)



),
)); 

?>
      <form method="get">
<input type="search" placeholder="search" name="q" value="<?=isset($_GET['q']) ? CHtml::encode($_GET['q']) : '' ; ?>" />
<input type="submit" value="search" />
</form>      
       </div>
        <div class="separator bottom"></div>
    </div>
</div>
<!-- // Content END -->
<div class="clearfix"></div>
<!-- // Sidebar menu & content wrapper END -->

<div id="footer" class="hidden-print">
<?php $this->renderPartial('application.views.layouts._footer_inc');  ?>
</div>

person user3107044    schedule 14.02.2014    source источник
comment
что ты пробовал? показывать   -  person Rafay Zia Mir    schedule 14.02.2014


Ответы (1)


Если вам нужен поиск, такой как Google, который выполняет поиск при каждом нажатии клавиши и обновляет GridView, вы можете попробовать это. В вашем javascript напишите

<script type="text/javascript">
   $(document).ready(function () {
       $('#id of your search box').keyup(function () {

$.fn.yiiGridView.update('id of your grid to be updated', {
        data: $(this).serialize()
    });
});
   });
</script>

В вашем контроллере проверьте переменную $_POST, какое значение она имеет, чтобы вы могли получить это значение и выполнить поиск в master_customers для этого конкретного значения и снова отобразить представление.

person Rafay Zia Mir    schedule 14.02.2014