Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajax和jquery的下拉列表_Jquery_Mysql_Ajax_Jsp - Fatal编程技术网

使用ajax和jquery的下拉列表

使用ajax和jquery的下拉列表,jquery,mysql,ajax,jsp,Jquery,Mysql,Ajax,Jsp,我有一些值的下拉列表,如果我更改这些值,将通过替换第一个下拉列表下面的文本来显示另一个带有mysql数据库值的下拉列表。我在jsp页面中执行此过程。第二个下拉列表值来自第一个下拉列表的changeevent时的数据库。我的数据库包含两个表,一个用于国家,另一个用于城市。国家表包含字段countryid和country\u name,城市表包含字段cityid、countryid和city\u name。下面是我迄今为止所做的代码。这里我需要实现ajax和jquery?你能给我一些代码来填充第二个

我有一些值的下拉列表,如果我更改这些值,将通过替换第一个下拉列表下面的文本来显示另一个带有mysql数据库值的下拉列表。我在jsp页面中执行此过程。第二个下拉列表值来自第一个下拉列表的changeevent时的数据库。我的数据库包含两个表,一个用于国家,另一个用于城市。国家表包含字段countryid和country\u name,城市表包含字段cityid、countryid和city\u name。下面是我迄今为止所做的代码。这里我需要实现ajax和jquery?你能给我一些代码来填充第二个下拉列表而不使用任何php或.net页面吗

<%@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>");
            });
        }
    });
}