Jquery解决下拉框数据动态获取

104 篇文章 1 订阅
64 篇文章 1 订阅

废话不多说,直接上源码:

select.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'select.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript" src="js/jquery-2.1.1.min.js" charset="utf-8"></script>
	<script type="text/javascript">
	
		function get_app_type() {
		
			$.ajax({
				type: "post",
				url: "AppTypeShow.action", //获取json数据
				dataType: "json",
				success: function(data) {
					var d = eval("(" + data + ")");
					for(var i = 0; i < d.length; i++) {
						var id = d[i].id;
						var name = d[i].name;
						var opt = "<option value='" + id + "'>" + name + "</option>";
						$("#appType").append(opt);
					}
				},
				error: function() {
					alert("系统异常,请稍后再试!")
				}
			});
			
		}
		
		function get_app_class() {
		
			$.ajax({
				type: "post",
				url: "AppClassShow.action",
				dataType: "json",
				success: function(data) {
					var d = eval("(" + data + ")");
					for(var i = 0; i < d.length; i++) {
						var id = d[i].id;
						var name = d[i].name;
						var opt = "<option value='" + id + "'>" + name + "</option>";
						$("#appClass").append(opt);
					}
				},
				error: function() {
					alert("系统异常,请稍后再试!")
				}
			});
			
		}
	
		$(document).ready(function() {
		
			get_app_type();
			get_app_class();
			
		});
	</script>

  </head>
  
  <body>
    <table>
    	<tr>
			<td align="right">APP类型:</td>
			<td align="left">
				<select name="appType" id="appType" 
						style="margin-left: 16px; height: 30px; width: 110px; text-align: left; size: 3; color: #505050;">
  					<option value="-1">---请选择---</option>
  				</select>
			</td>
		</tr>
		<tr height="25px"><td> </td></tr>
		<tr>
			<td align="right">APP种类:</td>
				<td align="left">
					<select name="appClass" id="appClass" 
							style="margin-left: 16px; height: 30px; width: 110px; text-align: left; size: 3; color: #505050;">
  						<option value="-1">---请选择---</option>
  					</select>
			</td>
		</tr>
    </table>
  </body>
</html>
struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<constant name="struts.i18n.encoding" value="UTF-8"></constant>

	<package name="simpleton" extends="struts-default,json-default">
	
		<action name="*JsonAction" method="{1}"
				class="jquery.chisj.action.JsonAction">
			<result name="fail">error.jsp</result>
			<result type="json">
				<param name="root">result</param>
			</result>
		
		</action>
		
		<action name="AppTypeShow"
				class="jquery.chisj.action.NtAppAction"
				method="appTypeShow">
			<result name="fail">error.jsp</result>
			<result type="json">
				<param name="root">result</param>
			</result>
		</action>
		
		<action name="AppClassShow"
				class="jquery.chisj.action.NtAppAction"
				method="appClassShow">
			<result name="fail">error.jsp</result>
			<result type="json">
				<param name="root">result</param>
			</result>		
		</action>
		
	</package>

</struts>    
NtAppAction.java

/**
 * 
 */
package jquery.chisj.action;

import java.util.ArrayList;
import java.util.List;

import jquery.chisj.entity.APPClass;
import jquery.chisj.entity.APPType;

import com.opensymphony.xwork2.ActionSupport;

import net.sf.json.JSONArray;

/**
 * @ClassName: NtAppAction
 * @Description: TODO
 * @Author: chisj chisj@foxmail.com
 * @Date 2016年1月20日 下午4:53:50
 *
 */
public class NtAppAction extends ActionSupport {

	private String result;
	
	public String appTypeShow() {
		System.out.println("---app type show---");
		List<APPType> appTypeList = new ArrayList<APPType>();
		try {
			APPType appType_1 = new APPType();
			APPType appType_2 = new APPType();
			appType_1.setId(Short.valueOf("1"));
			appType_1.setName("Android");
			appType_2.setId(Short.valueOf("2"));
			appType_2.setName("iOS");
			appTypeList.add(appType_1);
			appTypeList.add(appType_2);
			JSONArray jsonArray = JSONArray.fromObject(appTypeList);
			result = String.valueOf(jsonArray);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return SUCCESS;
	}
	
	public String appClassShow() {
		System.out.println("---app class show---");
		List<APPClass> appClassList = new ArrayList<APPClass>();
		try {
			APPClass appClass_1 = new APPClass();
			APPClass appClass_2 = new APPClass();
			appClass_1.setId(Short.valueOf("1"));
			appClass_1.setName("种类1");
			appClass_2.setId(Short.valueOf("2"));
			appClass_2.setName("种类2");
			appClassList.add(appClass_1);
			appClassList.add(appClass_2);
			JSONArray jsonArray = JSONArray.fromObject(appClassList);
			result = String.valueOf(jsonArray);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return SUCCESS;
	}
	
	public String getResult() {
		return result;
	}
	
	public void setResult(String result) {
		this.result = result;
	}
	
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基本的示例,演示如何使用jQuery Mobile下拉框和AJAX从服务器异步检索数据。 HTML代码: ```html <!DOCTYPE html> <html> <head> <title>jQuery Mobile 下拉框异步获取数据示例</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> </head> <body> <div data-role="page"> <div data-role="header"> <h1>下拉框异步获取数据示例</h1> </div> <div data-role="main" class="ui-content"> <label for="select-choice-1" class="select">选择一个城市:</label> <select name="select-choice-1" id="select-choice-1"> <option value="">请选择...</option> <option value="1">北京</option> <option value="2">上海</option> <option value="3">广州</option> <option value="4">深圳</option> </select> <div id="result"></div> </div> <div data-role="footer"> <h4>版权所有 © 2021</h4> </div> </div> <script> $(document).on("pagecreate", function() { $("#select-choice-1").on("change", function() { var cityId = $("#select-choice-1").val(); $.ajax({ url: "getdata.php", type: "POST", data: { city_id: cityId }, dataType: "html", success: function(data) { $("#result").html(data); } }); }); }); </script> </body> </html> ``` JavaScript代码: ```javascript $(document).on("pagecreate", function() { $("#select-choice-1").on("change", function() { var cityId = $("#select-choice-1").val(); $.ajax({ url: "getdata.php", // 服务器端处理程序的URL地址 type: "POST", // 请求方式 data: { city_id: cityId }, // 发送到服务器端的数据 dataType: "html", // 服务器端返回的数据类型 success: function(data) { // 成功返回数据后的回调函数 $("#result").html(data); // 将返回的数据显示在页面上 } }); }); }); ``` PHP代码(getdata.php): ```php <?php if(isset($_POST['city_id'])) { $cityId = $_POST['city_id']; if($cityId == '1') { echo '<p>您选择了北京。</p>'; } else if($cityId == '2') { echo '<p>您选择了上海。</p>'; } else if($cityId == '3') { echo '<p>您选择了广州。</p>'; } else if($cityId == '4') { echo '<p>您选择了深圳。</p>'; } } ?> ``` 在这个示例中,我们创建了一个简单的HTML页面,其中包含一个下拉框和一个用于显示结果的div元素。当用户选择下拉框中的选项时,我们使用jQuery的AJAX函数从服务器异步检索数据,并将结果显示在页面上。 请注意,我们使用了jQuery的on()函数来监听页面创建事件,以便在页面加载时绑定事件处理程序。在事件处理程序中,我们使用jQuery的ajax()函数向服务器发送POST请求,并传递所选城市的ID作为数据。 服务器通过检查POST请求中的城市ID参数来确定要返回的数据,然后将数据返回到客户端。在客户端,我们在ajax()函数的成功回调函数中处理返回的数据,并将其显示在页面上。 以上就是一个基本的jQuery Mobile下拉框post异步获取数据的例子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值