使用jQuery和Ajax自动填充选择框(select)
来源:互联网 发布:怎么证明我是我知乎 编辑:程序博客网 时间:2024/06/05 04:48
前言:大家好,我是一名正在实习的前端实习生,今天在做项目的时候,遇到了一个没有遇到过的问题,就是从后台获取到的数据要自动填充到选择框内,并且选择框是个select级联(一个选择框改变,另一个也会改变,类似在淘宝买东西时的地址选择框)。
类似这种效果:
select级联遇到过,但是从后台获取数据处理select级联还是第一次。
找了篇优质的教程给萌新小白们(包括我)。
原址:https://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax#the-goal
---------------------------------------------------------------------------------------------------------------------
如果你熟悉如何使用选择框进行分类或者级联的话,就像ebay在出售货品时那样,通常这需要大量的javascript语言来进行处理维护,但是jQuery可以添加少量的Ajax来极大的简化这个工作。
目标:
允许用户从选择框中选中一个类别,另一个选择框出现相应的数据(级联)。
前置条件:
1.最新版本的jQuery
2.对json有基本的理解(作者说:不要因为它你就放弃,其实它非常非常的简单。。。hh)
3.可以响应ajax的服务器端脚本(php什么的。ajax的请求地址)
工作原理:
当最高级别的选择框(级联的父选择框)更改时,会向后台发送一个ajax请求,向请求地址传送当前选中的<option>的value值,然后将从后台返回的数据循环填充到另一个选择框(级联的子选择框)
代码:
1.页面的HTML
2.服务器端代码(php)
3.jQuery和ajax
4.json代码
HTML:
<form action="/select_demo.php"> <label for="ctlJob">Job Function:</label> <select name="id" id="ctlJob"> <option value="1">Managers</option> <option value="2">Team Leaders</option> <option value="3">Developers</option> </select> <noscript> <input type="submit" name="action" value="Load Individuals" /> </noscript> <label for="ctlPerson">Individual:</label> <select name="person_id" id="ctlPerson"> <option value="1">Mark P</option> <option value="2">Andy Y</option> <option value="3">Richard B</option> </select><input type="submit" name="action" value="Book" /></form>
服务器端代码:
<?phpif ($_GET['id'] == 1) { echo <<<HERE_DOC [ {"optionValue": 0, "optionDisplay": "Mark"}, {"optionValue":1, "optionDisplay": "Andy"}, {"optionValue":2, "optionDisplay": "Richard"}]HERE_DOC;} else if ($_GET['id'] == 2) { echo <<<HERE_DOC [{"optionValue":10, "optionDisplay": "Remy"}, {"optionValue":11, "optionDisplay": "Arif"}, {"optionValue":12, "optionDisplay": "JC"}]HERE_DOC;} else if ($_GET['id'] == 3) { echo <<<HERE_DOC [{"optionValue":20, "optionDisplay": "Aidan"}, {"optionValue":21, "optionDisplay":"Russell"}]HERE_DOC;}?>
JSON返回数据(底下的数据是当传送的id=2时):
[ {"optionValue":10, "optionDisplay": "Remy"}, {"optionValue":11, "optionDisplay": "Arif"}, {"optionValue":12, "optionDisplay": "JC"}]
jQuery和Ajax:
<script src="jquery.js"></script><script>$(function(){ $("select#ctlJob").change(function(){ $.getJSON("/select.php",{id: $(this).val()}, function(j){ var options = ''; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>'; } $("select#ctlPerson").html(options); }) })})</script>
PS:这段ajax向后台传送了id数据,返回的数据循环填充到子选择框-------------------------------------------------------------------------------------------------------------------------------------------------------
今天自己写的一小段:
$("#select_year").change(function(){ $.post("url",{ year:$(this).val() },function(result){
var result=JSON.parse(result); var optionMonthCache='<option value="'+result[i].optionValue+'">'+result[i].optionDisplay+'</option>'; $("#select_month").append(optionMonthCache); }) })
选择某一年份,然后子选择框出现对应的月份 - 使用jQuery和Ajax自动填充选择框(select)
- Jquery checkbo自动填充选择
- 自动填充-SpringMVC和ajax
- drupal7级联选择和自动填充功能的使用
- 发布自制的操作下拉列表框(SELECT)的三个jquery插件(ajax填充、联动、增加选项)
- 发布自制的操作下拉列表框(SELECT)的三个jquery插件(ajax填充、联动、增加选项)
- 自制的操作下拉列表框(SELECT)的三个jquery插件(ajax填充、联动、增加选项)
- Jquery填充select option和callback
- paip.jquery ajax 请求JSON数据填充SELECT全过程纪录
- jquery select填充
- select选择框控件-jquery.editable-select
- jQuery获取Select选择的Text和Value(详细)
- jquery插件自动填充
- jquery自动填充勾选框
- 使用struts2+jquery+ajax生成联动下拉列表框(select)
- Android中选择控件、自动填充、GridView控件的使用
- jquery获取和选择select的值
- 邮箱下拉自动填充选择
- 不借助第三方变量交换两个数值
- 第十四个目标 FZU
- Ant Design 方法默认传值,加上其他参数
- SDRC Imageware Surfacer V10.6 逆向工程、曲面造型\
- JUC集合-10之 ConcurrentLinkedQueue
- 使用jQuery和Ajax自动填充选择框(select)
- rabbitMQ
- Android Studio gradle 设置运行时使用正式发布的keystr
- NYOJ 32 组合数
- UI
- PCIe学习笔记(33)--- PL
- 如何用一行C++代码读写数据库
- Android自定义简单控件--星级评价
- NGUI机制