내 응용 프로그램에 CGridView가 포함 된 페이지가 있습니다. 사용자는 양식을 작성하고 제출 버튼을 클릭하여 데이터를 검색 할 수 있습니다. 검색 기능이 작동하고 CGridView가 성공적으로 업데이트되었습니다. 문제는 그것이 아약스를 통해 이루어질 수 없다는 것인데, Yii는 URL의 매개 변수를 통해이를 계속 수행합니다.Yii GridView Ajax 업데이트가 작동하지 않습니다.
CGridView를 아약스를 통해 업데이트하여보고 싶은 URL을 계속 표시하고 싶습니다. 여기 내 코드가있다.
파일보기
<?php
Yii::app()->clientScript->registerScript('search', "
$('.btn-link').click(function(){
$('.section').toggle();
return false;
});
$('.section form').submit(function(){
$('#customer2-grid').yiiGridView('update', {
data: $(this).serialize()
});
return false;
});
");
?>
<?php echo CHtml::link('Advanced Search','#',array('class'=>'btn-link')); ?>
<div class="section" style="display:none">
<?php $this->renderPartial('_search',array(
'model'=>$model,
)); ?>
</div><!-- search-form -->
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'customer2-grid',
'dataProvider'=>$model->search(),
'htmlOptions'=>array('style'=>'font-weight:bold'),
'filter'=>$model,
'columns'=>array(
'NAME',
'BIRTHDATE',
'ADDRESS',
'EMAIL',
array(
'header'=>'Action',
'class'=>'CButtonColumn',
'template' => '{add} {updates}',
'buttons' => array(
'add' => array(
'label' => '',
//'imageUrl' => Yii::app()->request->baseUrl.'/images/icon/add.png',
'url' => 'Yii::app()->createUrl("/goods/create/",array("id"=>$data->ID))',
'options'=>array('class'=>'btn btn-info', 'style'=> 'margin-bottom:2px '),
),
'updates' => array(
'label' => 'Update Profil',
// 'imageUrl' => Yii::app()->request->baseUrl.'/images/icon/update.png',
'url' => 'Yii::app()->createUrl("/customer/update/",array("id"=>$data->ID))',
'options'=>array('class'=>'btn btn-info'),
),
),
),
),
));
?>
여기 내 _search.php 코드가 잘
<div class="form-horizontal">
<?php $form=$this->beginWidget('CActiveForm', array(
'action'=>Yii::app()->createUrl($this->route),
'method'=>'get',
)); ?>
<div class="form-group">
<?php echo $form->labelEx($model,'NAME',array('class'=>'col-sm-2 control-label')); ?>
<div class="col-sm-6">
<?php echo $form->textField($model,'NAME',array('size'=>60,'maxlength'=>128,'class'=>'form-control')); ?>
</div>
</div>
<div class="form-group">
<?php echo $form->labelEx($model,'BIRTHDATE',array('class'=>'col-sm-2 control-label')); ?>
<div class="col-sm-6">
<?php echo $form->textField($model,'BIRTHDATE',array('class'=>'form-control')); ?>
</div>
</div>
<div class="form-group">
<?php echo $form->labelEx($model,'ADDRESS',array('class'=>'col-sm-2 control-label')); ?>
<div class="col-sm-6">
<?php echo $form->textField($model,'ADDRESS',array('size'=>60,'maxlength'=>512,'class'=>'form-control')); ?>
</div>
</div>
<div class="form-group">
<?php echo $form->labelEx($model,'EMAIL',array('class'=>'col-sm-2 control-label')); ?>
<div class="col-sm-6">
<?php echo $form->textField($model,'EMAIL',array('size'=>60,'maxlength'=>64,'class'=>'form-control')); ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<?php echo CHtml::submitButton('Search', array('class'=>'btn btn-primary')); ?>
</div>
</div>
<?php $this->endWidget(); ?>
</div><!-- search-form -->
여기 내 컨트롤러 코드의
public function actionAdmin()
{
$this->layout = '//layouts/column1';
$model=new Customer('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['Customer']))
$model->attributes=$_GET['Customer'];
$this->render('admin',array(
'model'=>$model,
));
}
는 jQuery를에있는 토글 기능은 작품입니다하지만 업데이트 기능 작동하지 않습니다. CGridView의 정렬 함수도 작동합니다. 나는 여기서 무엇을 놓칠까요?
CSS에 jQuery/CGridView에 대한 제한 사항이 있습니까? 나는 CSS 선택기에 문제가있어 가정
편집 : 나는 예기치 않게 나는 3 개 자바 스크립트 파일을 포함했는데 그 중 하나가 오류의 원인 layout/main.php
에 자리 잡고 문제를 발견했습니다 .
<!-- JAVASCRIPTS -->
<!-- Placed at the end of the document so the pages load faster -->
<!-- JQUERY -->
<script src="<?php echo Yii::app()->request->baseUrl; ?>/css/default/js/jquery/jquery-2.0.3.min.js"></script>
<!-- JQUERY UI-->
<script src="<?php echo Yii::app()->request->baseUrl; ?>/css/default/js/jquery-ui-1.10.3.custom/js/jquery-ui-1.10.3.custom.min.js"></script>
<!-- BOOTSTRAP -->
<script src="<?php echo Yii::app()->request->baseUrl; ?>/css/default/bootstrap-dist/js/bootstrap.min.js"></script>
첫 번째 스크립트를 삭제 한 후에도 문제가 없습니다. 그러나, 나는 이유를 모른다. 어쩌면 누군가가 왜 그런지 설명 할 수 있습니다. 모든 설명을 부탁드립니다. 표준 GII 모듈 죄송합니다
로 확장 검색 도구를 갖고 싶어 물론, 사용자 정의 검색 양식을 지정하여 기존 솔루션을 발명 할 필요가 없다? – Panoptik
필터 속성도 작동하지 않습니다. 나는 이유를 모른다. 이것은 모델과 관련이 있습니까? – MCRmy
필터 속성을 모델 으로 지정해야합니다. 'filter'=> $ model, – Panoptik