使用ajax和jquery的下拉列表
我有一些值的下拉列表,如果我更改这些值,将通过替换第一个下拉列表下面的文本来显示另一个带有mysql数据库值的下拉列表。我在jsp页面中执行此过程。第二个下拉列表值来自第一个下拉列表的changeevent时的数据库。我的数据库包含两个表,一个用于国家,另一个用于城市。国家表包含字段countryid和country\u name,城市表包含字段cityid、countryid和city\u name。下面是我迄今为止所做的代码。这里我需要实现ajax和jquery?你能给我一些代码来填充第二个下拉列表而不使用任何php或.net页面吗使用ajax和jquery的下拉列表,jquery,mysql,ajax,jsp,Jquery,Mysql,Ajax,Jsp,我有一些值的下拉列表,如果我更改这些值,将通过替换第一个下拉列表下面的文本来显示另一个带有mysql数据库值的下拉列表。我在jsp页面中执行此过程。第二个下拉列表值来自第一个下拉列表的changeevent时的数据库。我的数据库包含两个表,一个用于国家,另一个用于城市。国家表包含字段countryid和country\u name,城市表包含字段cityid、countryid和city\u name。下面是我迄今为止所做的代码。这里我需要实现ajax和jquery?你能给我一些代码来填充第二个
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script>
function createRequestObject(){
var req;
if(window.XMLHttpRequest){
//For Firefox, Safari, Opera
req = new XMLHttpRequest();
}
else if(window.ActiveXObject){
//For IE 5+
req = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
//Error for an old browser
alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera');
}
return req;
}
//Make the XMLHttpRequest Object
var http = createRequestObject();
function sendRequest(method, url){
if(method == 'get' || method == 'GET'){
http.open(method,url);
http.onreadystatechange = handleResponse;
http.send(null);
}
}
function handleResponse(){
if(http.readyState == 4 && http.status == 200){
var response = http.responseText;
if(response){
document.getElementById("second_dropdown_code").innerHTML = response;
}
}
}
function getCityDropdown()
{
var w = document.myform.mylist.selectedIndex;
var country_id = document.myform.mylist.options[w].value;
sendRequest('GET','fetchCites.do?countryid=' + country_id);
}
</script>
</head>
<body>
<h1>Hello World!</h1>
<FORM NAME="myform">
<SELECT NAME="country" onChange="getCityDropdown()">
<OPTION VALUE="1">India</option>
<OPTION VALUE="2">England</option>
</SELECT>
</FORM>
<div id="second_dropdown_code">This text will be replaced by second City dropdown.
</div>
</body>
</html>
JSP页面
函数createRequestObject(){
var-req;
如果(window.XMLHttpRequest){
//对于Firefox、Safari和Opera
req=新的XMLHttpRequest();
}
如果(window.ActiveXObject){
//对于IE 5+
req=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
否则{
//旧浏览器的错误
警报(“您的浏览器不是IE 5或更高版本,也不是Firefox、Safari或Opera”);
}
返回请求;
}
//生成XMLHttpRequest对象
var http=createRequestObject();
函数sendRequest(方法,url){
如果(方法=='get'| |方法=='get'){
open(方法,url);
http.onreadystatechange=handleResponse;
http.send(空);
}
}
函数handleResponse(){
如果(http.readyState==4&&http.status==200){
var response=http.responseText;
如果(响应){
document.getElementById(“第二个下拉列表代码”).innerHTML=响应;
}
}
}
函数getCityDropdown()
{
var w=document.myform.mylist.selectedIndex;
var country\u id=document.myform.mylist.options[w].value;
sendRequest('GET','fetchCites.do?countryid='+国家/地区id);
}
你好,世界!
印度
英格兰
此文本将替换为第二个城市下拉列表。
在您的编码中尝试这一点
<form method="post" name="form1">
<select style="background-color: #ffffa0" name="country" onchange="getState(this.value)">
<option>Select Country</option>
<option value="223">USA</option>
<option value="224">Canada</option>
<option value="225">England</option>
<option value="226">Ireland</option>
</select>
<select style="background-color: #ffffa0" name="state">
<option>Select Country First</option>
</select>
假设您想要填充给定的状态下拉列表
<SELECT NAME="sate" id="sate">
</SELECT>
并使用以下代码填充状态下拉列表。它进行ajax调用并作为ajax对象获得响应,ajax对象是一个ajax数组,并在数组中进行迭代
function getStateDropdown() {
var w = document.myform.mylist.selectedIndex;
var country_id = document.myform.mylist.options[w].value;
$.ajax({
url : 'fetchState.do?countryid=' + country_id,
success : function(data) {
$.each(data, function(i, val) {
$("#state").append(
"<option value=" + i + ">" + val.state+ "</option>");
});
}
});
}
函数getStateDropdown(){
var w=document.myform.mylist.selectedIndex;
var country\u id=document.myform.mylist.options[w].value;
$.ajax({
url:'fetchState.do?countryid='+国家/地区id,
成功:功能(数据){
$。每个(数据、函数(i、val){
$(“#状态”)。追加(
“+val.state+”);
});
}
});
}
对不起,我不能在这里使用任何php或.net页面
[{
"state": "MP"
},
{
"sate": "UP"
}]
function getStateDropdown() {
var w = document.myform.mylist.selectedIndex;
var country_id = document.myform.mylist.options[w].value;
$.ajax({
url : 'fetchState.do?countryid=' + country_id,
success : function(data) {
$.each(data, function(i, val) {
$("#state").append(
"<option value=" + i + ">" + val.state+ "</option>");
});
}
});
}