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中实现图片的锐化
Oct 09 PHP
修改了一个很不错的php验证码(支持中文)
Feb 14 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
openPNE常用方法分享
Nov 29 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
PHP中数组的分组排序实例
Jun 01 PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 PHP
PHP加密解密类实例分析
Apr 20 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
PHP多进程简单实例小结
Nov 09 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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
JS之小练习代码
2008/10/12 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
python利用tkinter实现屏保
2019/07/30 Python
Python创建数字列表的示例
2019/11/28 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
中国宠物用品商城:E宠商城
2016/08/27 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
最新远光软件笔试题面试题内容
2013/11/08 面试题
什么是抽象
2015/12/13 面试题
后勤人员自我评价怎么写
2013/09/19 职场文书
眼镜促销方案
2014/03/15 职场文书
学生实习证明范文
2014/09/28 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
2015初中团委工作总结
2015/07/28 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
Golang 实现WebSockets
2022/04/24 Golang