Yii2 Pjax无法正常工作
发布时间:2020-12-13 13:05:15 所属栏目:PHP教程 来源:网络整理
导读:我想使用Pjax刷新gridview但不知何故它不起作用.这是代码: _search.php ?phpuse yiihelpersHtml;use yiiwidgetsActiveForm;use yiiwidgetsPjax;$this-registerJs(" $('#btnAjaxSearch').click(function(){ $.ajax({ type: 'get',data: $('.bank-searc
我想使用Pjax刷新gridview但不知何故它不起作用.这是代码:
_search.php <?php use yiihelpersHtml; use yiiwidgetsActiveForm; use yiiwidgetsPjax; $this->registerJs(" $('#btnAjaxSearch').click(function(){ $.ajax({ type: 'get',data: $('.bank-search form').serializeArray(),success: function (data) { $.pjax.reload({container:"#bank"}); },error: function (XMLHttpRequest,textStatus,errorThrown) { alert('error'); } }); return false; }); ",yiiwebView::POS_END,'bank-search'); ?> <div class="bank-search"> <?php Pjax::begin(['id' => 'bank-form']); ?> <?php $form = ActiveForm::begin([ 'action' => ['index'],'method' => 'get',]); ?> <?= $form->field($model,'bank_name') ?> <?= $form->field($model,'state') ?> <?= $form->field($model,'district') ?> <?= $form->field($model,'city') ?> <div class="form-group"> <?= Html::Button('Search',['class' => 'btn btn-primary','id' => 'btnAjaxSearch']) ?> </div> <?php ActiveForm::end(); ?> <?php Pjax::end(); ?> </div> 的index.php <?php use yiihelpersHtml; use yiigridGridView; use yiiwidgetsPjax; $this->title = 'Banks'; $this->params['breadcrumbs'][] = $this->title; ?> <div class="bank-index"> <h1><?= Html::encode($this->title) ?></h1> <?php echo $this->render('_search',['model' => $searchModel]); ?> <p> <?= Html::a('Create Bank',['create'],['class' => 'btn btn-success']) ?> </p> <?php Pjax::begin(['id' => 'bank']); ?> <?= GridView::widget([ 'dataProvider' => $dataProvider,'filterModel' => $searchModel,'columns' => [ ['class' => 'yiigridSerialColumn'],'id','bank_name','state','district','city',// 'branch',['class' => 'yiigridActionColumn'],],]); ?> <?php Pjax::end(); ?> </div> 调节器 /** * Lists all Bank models. * @return mixed */ public function actionIndex() { $searchModel = new BankSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index',[ 'searchModel' => $searchModel,'dataProvider' => $dataProvider,]); } 简单搜索正在运行,但Pjax不是.我是Yii2的新手,所以任何帮助都将不胜感激.谢谢.
谢谢爱丁.它帮助我解决了这个问题.这就是我做的.它可能会帮助面临同样问题的人.
正如Edin提到的,你需要将url和搜索参数一起传递给Pjax以刷新gridview. 这是我编辑的代码: $js = <<<JS // get the form id and set the event $('#bank-form-id').on('beforeSubmit',function(e) { var form = $(this); if(form.find('.has-error').length) { return false; } $.ajax({ url: form.attr('action'),type: 'post',data: form.serialize(),success: function(response) { var csrf = yii.getCsrfToken(); var bank_name = $('#banksearch-bank_name').val(); var state = $('#banksearch-state').val(); var district = $('#banksearch-district').val(); var city = $('#banksearch-city').val(); var url = form.attr('action')+ '&_csrf='+csrf+'&BankSearch[bank_name]='+bank_name+'&BankSearch[state]='+state+'&BankSearch[district]='+district+'&BankSearch[city]='+city; $.pjax.reload({url: url,container:'#bank'}); } }); }).on('submit',function(e){ e.preventDefault(); }); JS; $this->registerJs($js); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |