国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
yii2中結(jié)合gridview如何使用modal彈窗實(shí)例代碼詳解,yii2gridview
首頁 php教程 php手冊 yii2中結(jié)合gridview如何使用modal彈窗實(shí)例代碼詳解,yii2gridview

yii2中結(jié)合gridview如何使用modal彈窗實(shí)例代碼詳解,yii2gridview

Jul 06, 2016 pm 02:24 PM
GridView modal yii2

yii2中結(jié)合gridview如何使用modal彈窗實(shí)例代碼詳解,yii2gridview

在上篇文章給大家介紹了Yii2中如何使用modal彈窗(基本使用),即以創(chuàng)建為例。

實(shí)際開發(fā)中,我們往往還會(huì)遇到列表頁數(shù)據(jù)修改要使用modal的情況,如果是一般的循環(huán)展示,相信大多數(shù)人看了modal的基本使用都會(huì)操作,但是結(jié)合gridview估計(jì)有些人就開始吃不消了,我們看看如何解決這個(gè)問題!

1、gridview的操作增加[更新]按鈕,并指定data-toggle data-target class以及data-id的值

[
'class' => 'yii\grid\ActionColumn',
'template' => '{update}', 
'buttons' => [
'update' => function ($url, $model, $key) {
return Html::a('更新', '#', [
'data-toggle' => 'modal',
'data-target' => '#update-modal',
'class' => 'data-update',
'data-id' => $key,
]);
},
],
],

2、為更新添加modal

<&#63;php 
use yii\bootstrap\Modal;
// 更新操作
Modal::begin([
'id' => 'update-modal',
'header' => '<h4 class="modal-title">更新</h4>',
'footer' => '<a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>',
]); 
$requestUpdateUrl = Url::toRoute('update');
$updateJs = <<<JS
$('.data-update').on('click', function () {
$.get('{$requestUpdateUrl}', { id: $(this).closest('tr').data('key') },
function (data) {
$('.modal-body').html(data);
} 
);
});

JS;

$this->registerJs($updateJs);
Modal::end();
&#63;>

3、修改我們的update方法

public function actionUpdate($id)
{
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['index']);
} else {
return $this->renderAjax('update', [
'model' => $model,
]);
}
}

可以看出整個(gè)過程中跟我們之前說的modal基本使用沒什么差別。但是到此并沒有結(jié)束,相信大多數(shù)人可能會(huì)遇到下面常見的幾個(gè)難以解決的問題:

yii2 modal中使用了select2 為什么搜索框不可搜索?

yii2 單個(gè)頁面多個(gè)modal 為什么頁面會(huì)共用一個(gè),等數(shù)據(jù)加載完了才好?

yii2 單個(gè)頁面多個(gè)modal,以單個(gè)頁面添加和我們上面的gridview更新均使用modal為例,當(dāng)使用select2時(shí),為什么更新的select2會(huì)失效不起作用?

下面我們看如何一個(gè)一個(gè)的解決掉這些問題:

首先第一個(gè)問題,你只需要在modal使用begin的時(shí)候指定options選項(xiàng)的tabindex為false即可,參考如下:

Modal::begin([
// ......
'options' => [
'tabindex' => false 
],
]);

第二個(gè)和第三個(gè)問題,都是在單個(gè)頁面中使用多個(gè)modal所引起的,為了說明問題,我們在某列表內(nèi)[創(chuàng)建]按鈕和gridview中[更新]按鈕中均使用modal。按照我們Yii2中如何使用modal彈窗(基本使用)和本篇文章所述,第一個(gè)問題很明顯是

$('.modal-body').html(data);

所引起的,多個(gè)modal,在我們第一次使用modal之后給所有modal的body賦值了,以至于在后面使用其他modal時(shí),在未請求到數(shù)據(jù)之前均顯示相同內(nèi)容的bug。解決該問題只需要在每次異步請求之后對各自的modal-body單獨(dú)賦值即可,代碼可參考如下:

$('#create').on('click', function () {
$.get('url', {},
function (data) {
$('#create-modal').find('.modal-body').html(data);
// $('.modal-body').html(data);
} 
);
});
$('.data-update').on('click', function () {
$.get('{$requestUpdateUrl}', { id: $(this).closest('tr').data('key') },
function (data) {
$('#update-modal').find('.modal-body').html(data);
// $('.modal-body').html(data);
} 
);
});

看最后一個(gè)問題,使用過select2的同學(xué)要注意了?。。?/p>

如果說像我們本篇主題所介紹的例子這樣,form中帶select2的話,就會(huì)導(dǎo)致僅僅在[創(chuàng)建]時(shí)select2正常,[更新]操作時(shí)select2字段“隱藏”的效果!

這其實(shí)是同一頁面相同select2對應(yīng)的id導(dǎo)致的,解決該問題只需要在每次異步請求數(shù)據(jù)之前,移除掉頁面上所有已存在的表單項(xiàng)即可??淳唧w實(shí)現(xiàn):

$('#create').on('click', function () {
// 有效避免multiply modal select2的問題
// 移除異步加載過來的form表單
$('.document-nav-form').remove();
$.get('{$requestUrl}', {},
function (data) {
$('#create-modal').find('.modal-body').html(data);
} 
);
});
$('.data-update').on('click', function () {
// 有效避免multiply modal select2的問題
// 移除異步加載過來的form表單
$('.document-nav-form').remove();
$.get('{$requestUpdateUrl}', { id: $(this).closest('tr').data('key') },
function (data) {
$('#update-modal').find('.modal-body').html(data);
} 
);
});

以上所述是小編給大家介紹的yii2中結(jié)合gridview如何使用modal彈窗實(shí)例代碼詳解的全部敘述,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對幫客之家網(wǎng)站的支持!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
yii2 怎么去掉jquery yii2 怎么去掉jquery Feb 17, 2023 am 09:55 AM

yii2去掉jquery的方法:1、編輯AppAsset.php文件,注釋掉變量$depends里的“yii\web\YiiAsset”值;2、編輯main.php文件,在字段“components”下面添加配置為“'yii\web\JqueryAsset' => ['js' => [],'sourcePath' => null,],”即可去掉jquery腳本。

yii2怎么顯示錯(cuò)誤提示 yii2怎么顯示錯(cuò)誤提示 Apr 18, 2025 pm 11:09 PM

在 Yii2 中,顯示錯(cuò)誤提示有兩種主要方法。一種是使用 Yii::$app-&amp;gt;errorHandler-&amp;gt;exception(),在異常發(fā)生時(shí)自動(dòng)捕獲和顯示錯(cuò)誤。另一種是使用 $this-&amp;gt;addError(),在模型驗(yàn)證失敗時(shí)顯示錯(cuò)誤,并可以在視圖中通過 $model-&amp;gt;getErrors() 訪問。視圖中,可以用 if ($errors = $model-&amp;gt;getErrors())

怎么使用YII2框架安裝Redis擴(kuò)展 怎么使用YII2框架安裝Redis擴(kuò)展 May 26, 2023 pm 06:41 PM

1.需要下載yii2-redis的master分支windows版本composer下載2.解壓復(fù)制到vendor/yiisoft下面3.yiisoft下面extensions.php里面增加'yiisoft/yii2-redis'=>array('name'=>'yiisoft/yii2-redis','version'=>'2.0.

精選幾道CTF習(xí)題,帶你學(xué)習(xí)yii2框架! 精選幾道CTF習(xí)題,帶你學(xué)習(xí)yii2框架! Feb 23, 2022 am 10:33 AM

本篇文章帶大家了解yii2框架,分享幾道CTF習(xí)題,通過它們來學(xué)習(xí)yii2框架,希望對大家有所幫助。

react中modal不生效怎么辦 react中modal不生效怎么辦 Dec 30, 2022 am 09:22 AM

react中modal不生效的解決辦法:1、將“main.jsx”文件中的“”去掉;2、在使用modal組件的地方,給Modal添加兩個(gè)屬性“transitionName="" maskTransitionName=""”;3、升級“ant-design”即可。

如何使用內(nèi)置的YII小部件(例如GridView,ListView,ActiveForm)? 如何使用內(nèi)置的YII小部件(例如GridView,ListView,ActiveForm)? Jul 24, 2025 am 01:00 AM

在Yii框架中,GridView、ListView和ActiveForm是構(gòu)建頁面元素的重要組件。1.GridView用于展示表格數(shù)據(jù),支持分頁、排序和過濾,通過dataProvider和columns配置列并渲染表格;2.ListView適用于靈活布局的列表展示,使用itemView自定義每條記錄的顯示,并通過layout控制整體結(jié)構(gòu);3.ActiveForm用于創(chuàng)建模型綁定表單,自動(dòng)處理驗(yàn)證和錯(cuò)誤提示,支持多種輸入類型及布局調(diào)整。掌握這些widget可大幅提升開發(fā)效率,并可通過配置實(shí)現(xiàn)個(gè)性化

如何在VUE中創(chuàng)建模態(tài)或?qū)υ捒蚪M件? 如何在VUE中創(chuàng)建模態(tài)或?qū)υ捒蚪M件? Aug 02, 2025 am 03:00 AM

創(chuàng)建Modal.vue組件,使用CompositionAPI定義接收modelValue和title的props,并通過emit觸發(fā)update:modelValue事件實(shí)現(xiàn)v-model雙向綁定;2.在模板中使用slot分發(fā)內(nèi)容,支持默認(rèn)插槽及具名插槽header和footer;3.通過@click.self實(shí)現(xiàn)點(diǎn)擊遮罩層關(guān)閉彈窗;4.在父組件中導(dǎo)入Modal并用ref控制顯示隱藏,結(jié)合v-model使用;5.可選增強(qiáng)功能包括監(jiān)聽Escape鍵關(guān)閉、添加過渡動(dòng)畫和焦點(diǎn)鎖定。該模態(tài)框組件具有良好

CSS模態(tài)彈出示例 CSS模態(tài)彈出示例 Jul 28, 2025 am 04:33 AM

使用純CSS實(shí)現(xiàn)模態(tài)彈窗可通過隱藏的checkbox控制顯隱,1.用input[type="checkbox"]作為狀態(tài)開關(guān);2.利用:checked .modal控制模態(tài)框顯示;3.通過label[for]觸發(fā)勾選實(shí)現(xiàn)打開與關(guān)閉;4.添加@keyframes動(dòng)畫實(shí)現(xiàn)淡入彈出效果;5.模態(tài)框內(nèi)關(guān)閉按鈕或遮罩點(diǎn)擊區(qū)域均可綁定label控制隱藏,整個(gè)過程無需JavaScript,兼容性好且可訪問性強(qiáng),適合靜態(tài)頁面或輕量級交互場景使用。

See all articles