這篇文章將為大家詳細講解有關如何在Yii2中利用Ajax獲取表單的數據,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
yii2advanced.customers表
customer_id:int(11)
customer_name:varchar(100)
zip_code:varchar(20)
city:varchar(100)
province:varchar(100)
yii2advanced.locations表
location_id:int(11)
zip_code:varchar(20)
city:varchar(100)
province:varchar(100)
這里要通過在customer選擇zip_code之后自動在表單中填充這個郵編對應的城市和省份信息
實現方法
首先需要在Locations控制器里面添加一個方法,他可以通過get過來的zip_id獲取對應的location信息
public function actionGetCityProvince($zipId) { $location = Locations::findOne($zipId); echo Json::encode($location); }
然后通過JS監聽select,當select改變時,使用jQuery的get方法獲取對應的信息,并使用jQuery的attr方法設置city和province的value即可
JS代碼,位于customer的form視圖
#zipCode 是select的id
<?php $script = <<<JS jQuery('#zipCode').change(function(){ var zipId = $(this).val(); jQuery.get('index.php?r=locations/get-city-province',{zipId:zipId},function(data){ var data = jQuery.parseJSON(data); jQuery("#customers-city").attr("value",data.city); jQuery("#customers-province").attr("value",data.province); }); }); JS; $this->registerJs($script); ?>
關于如何在Yii2中利用Ajax獲取表單的數據就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。