日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】Yii在表单中建立关联下拉列表dropdown

發布時間:2025/4/5 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】Yii在表单中建立关联下拉列表dropdown 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:

??? 應用中經常遇到需要在表單form中使用兩個關聯的下拉列表dropdown。其中一個下拉列表中的數據依賴于另一個下拉列表的當前值。例如填寫地 址,當 我們修改’國家’下拉列表的值,’城市’列表中的項目就會全部更新為該國的城市。通過Yii內建的AJAX功能可以比較容易的實現關聯下拉列表的功能。下 面簡要介紹實現過程。

首先,在表單的view文件中,我們需要在表單中顯示國家和依賴于國家的城市兩個下拉列表。 echo CHtml::dropDownList('country_id','', array(1=>'USA',2=>'France',3=>'Japan'),array('ajax' => array('type'=>'POST', //url請求類型'url'=>CController::createUrl('currentController/dynamiccities'), //要調用的url.//Style: CController::createUrl('currentController/methodToCall')'update'=>'#city_id', //ajax請求要更新的目的元素,這里是城市下拉列表//'data'=>'js:javascript statement'//這里不設置data,默認將傳遞當前表單form中的所有元素數據)));//此處數據為空,因需要根據其他下拉列表的值來更新 echo CHtml::dropDownList('city_id','', array());

??? 簡單起見,在這里第一個’國家’的下拉列表由一系列 鍵值/文本 數組構成,當然我們也可以簡單修改,使其從數據庫中讀取,并使用CHtml::listData處理成這種key/value數組。

在上面的表單中,一旦它的值發生變化,都會觸發一個ajax請求,發送給當前控制器controller的 ‘dynamiccities’動作。請求的結果( ‘dynamiccities’動作的輸出)將被更新到第二個下拉列表的值(id是city_id)。 接下來,要修改控制器controller代碼,添加’dynamiccities’的動作響應,輸出將用來填充‘城市’下拉列表的html。在這里,他需要根據請求的國家代碼country_id輸出相應的城市列表: public function actionDynamiccities() {$data=Location::model()->findAll('parent_id=:parent_id',array(':parent_id'=>(int) $_POST['country_id']));$data=CHtml::listData($data,'id','name');foreach($data as $value=>$name){echo CHtml::tag('option',array('value'=>$value),CHtml::encode($name),true);} } 這里Location是用來儲存城市信 息的AR模型,關聯的國家代碼字段為parent_id。CHtml::listData將搜索到的數據對象(object)轉換為 [key]:value形式的數組,key為屬性id的值,value為屬性name的值。然后,以tag的形式逐一輸出,供第二個下拉列表(城市 dropdown)更新數據。 你可能會奇怪_POST['country_id']參數是哪里來的?其實,當ajax參數數組中‘data’內容為空時(請查看第一個國家列表的ajax設置),ajax會將下拉列表所在表單的所有元素值都通過ajax請求傳遞給控制器。 想修改也可以。默認情況下,ajax參數數組中的’data’設置為 js:jQuery(this).parents(“form”).serialize() 。前綴js告訴Yii:接下來將是一個javascript語句。所以,如果你想要改變’data’參數的值,你可以加入自己的javascript語 句,并使用js:開頭。上述方法對于’success’參數也適用。 還需要修改控制器的規則,給新添加的動作分配適當的權限。例如我們可以把 array('allow', // allow authenticated user to perform 'create' and 'update' actions'actions'=>array('create','update'),'users'=>array('@'),),

修改為

array('allow', // allow authenticated user to perform 'create' and 'update' actions'actions'=>array('create','update','dynamiccities'),'users'=>array('@'),), 小貼士:出于測試目的我們還可以在filters方法中注釋掉下面這句: 'accessControl', // perform access control for CRUD operations 這將禁用所有的訪問權限控制。測試完成后,別忘了啟用它。

?

轉載于:https://www.cnblogs.com/fzzl/archive/2012/12/26/2834665.html

總結

以上是生活随笔為你收集整理的【转】Yii在表单中建立关联下拉列表dropdown的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 无码人妻精品一区二区三区夜夜嗨 | 欧美亚洲精品在线 | 免费性视频 | 好吊一区二区三区 | 亚洲日本色 | 日本一本在线视频 | 天天射网| 99涩涩| 国产l精品国产亚洲区久久 午夜青青草 | 五月天国产在线 | 亚洲尤物在线 | 无码人妻精品一区二区三应用大全 | 在线观看亚洲 | 日日综合| 精品人成 | 免费看污的网站 | 99精品偷自拍 | 国产亚洲高清视频 | 影音先锋天堂网 | 一区精品在线观看 | 日本aⅴ视频 | 国产色视频一区二区三区qq号 | 一区二区国产在线 | 尤物91| 一级特黄色大片 | 亚洲激情另类 | www.久久久久久久久 | 综合久久久久久久 | 粉嫩av国产一区二区三区 | 国产伦精品一区二区三区照片91 | 韩日a级片 | 亚洲AV无码一区二区伊人久久 | 欧美在线一二三区 | 日韩欧美精品中文字幕 | 亚洲欧美偷拍一区 | 素人女裸体 | 初高中福利视频网站 | 国产婷婷一区二区三区 | 黑人操亚洲女人 | 国产在线h | 在线免费观看日韩av | 国产做爰xxxⅹ性视频国 | 成年人黄色免费视频 | 国产又粗又猛又爽69xx | 日本猛少妇色xxxxx猛叫 | 一本一道久久a久久精品蜜桃 | 精品无码久久久久久久 | 美女高潮黄又色高清视频免费 | 青青av| 日韩精品一二三区 | 精品日韩欧美 | 日韩成人av在线 | 特一级黄色大片 | 国产激情久久久 | 中文字幕在线欧美 | 欧美激情免费视频 | 熟睡侵犯の奶水授乳在线 | 中文字幕资源站 | 国产精品久久久久久久一区二区 | 中文字幕免费高清在线 | 美女洗澡隐私免费网站 | 高清av一区二区三区 | 国产精品天天操 | 欧美不卡在线观看 | 依人99 | 久久亚洲AV成人无码国产野外 | 国产精品一区在线播放 | 97涩涩网| 国产免费二区 | 又黄又骚又爽 | 嫩草网站在线观看 | 韩国三级hd两男一女 | jiizzyou欧美2 | 亚洲高h| 来吧亚洲综合网 | 884aa四虎影成人精品一区 | 精品人妻在线视频 | 污污视频在线观看免费 | av鲁丝一区鲁丝二区鲁丝 | 黑人糟蹋人妻hd中文字幕 | 国产尤物在线视频 | 99在线免费| 免费在线观看黄网站 | 中文字幕在线视频播放 | 中国黄色a级 | 国产不卡在线视频 | 中国少妇毛片 | 国产精品久久久久一区二区三区 | 中文字幕在线日韩 | 黑人玩弄人妻一区二区三区四 | 秋霞欧美在线观看 | 色婷婷av一区二区三区之红樱桃 | 久久接色 | 按摩ⅹxxx性hd中国 | 国产伦精品一区二区三区视频网站 | 精品96久久久久久中文字幕无 | 美女色网站 | 日韩高清一级片 | 偷拍一区二区 |