Yii2基于Ajax自动获取表单数据的方法


Posted in PHP onAugust 10, 2016

本文实例讲述了Yii2基于Ajax自动获取表单数据的方法。分享给大家供大家参考,具体如下:

这里有两张表,表结构如下,locations表存放的省份和邮编等信息,两张表的model和curd均使用gii生成

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);
?>

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP学习之数组的定义和填充
Apr 17 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
详解php的socket通信
Aug 11 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
laravel添加前台跳转成功页面示例
Oct 22 PHP
在Laravel 中实现是否关注的示例
Oct 22 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 PHP
教你在header中隐藏php的版本信息
Aug 10 #PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 #PHP
PHP身份证校验码计算方法
Aug 10 #PHP
PHP5.4起内置web服务器使用方法
Aug 09 #PHP
PHP Filter过滤器全面解析
Aug 09 #PHP
学习PHP Cookie处理函数
Aug 09 #PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 #PHP
You might like
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
详解package.json版本号规则
2019/08/01 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
如何使用python爬取csdn博客访问量
2016/02/14 Python
python实现汉诺塔递归算法经典案例
2021/03/01 Python
Python reduce()函数的用法小结
2017/11/15 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
解决Mac下使用python的坑
2019/08/13 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
个性与发展自我评价
2014/02/11 职场文书
小学生读书感言
2014/02/12 职场文书
空气的环保标语
2014/06/12 职场文书
大专生自荐书范文
2014/06/22 职场文书
青年联谊会致辞
2015/07/31 职场文书
食品安全主题班会
2015/08/13 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书