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读取目录下所有文件的代码
Jan 07 PHP
PHP 学习路线与时间表
Feb 21 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
基于php验证码函数的使用示例
May 03 PHP
php 深入理解strtotime函数的使用详解
May 23 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
PHP读取Excel类文件
May 15 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 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
计数器详细设计
2006/10/09 PHP
初次接触php抽象工厂模式(Elgg)
2010/03/21 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
python实现查询苹果手机维修进度
2015/03/16 Python
python利用正则表达式提取字符串
2016/12/08 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python实现小世界网络生成
2019/11/21 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
python 从list中随机取值的方法
2020/11/16 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
计算机应届毕业生自荐信范文
2014/02/23 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
乒乓球比赛通知
2015/04/27 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
php将xml转化对象的实例详解
2021/11/17 PHP
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL