Php 用查询结果填充第三个下拉列表
我有三个下拉列表。根据第一个下拉列表中选择的选项,我使用javascript填充第二个下拉列表 第一个下拉列表Php 用查询结果填充第三个下拉列表,php,javascript,html,mysql,Php,Javascript,Html,Mysql,我有三个下拉列表。根据第一个下拉列表中选择的选项,我使用javascript填充第二个下拉列表 第一个下拉列表 <select id="continent" onchange="secondMenu(this,'country')" > <option value="1">Asia</option> <option value="2">Europe</option </select> 亚洲 欧洲使用Ajax,我在我的一个项目中
<select id="continent" onchange="secondMenu(this,'country')" >
<option value="1">Asia</option>
<option value="2">Europe</option
</select>
亚洲
欧洲使用Ajax,我在我的一个项目中做了一些非常类似的事情,下面是一个例子:
$('#product_series_text', $('#product_form')).change(function() {
var $series = $(this).val();
// Ajax request to get an updated list of product models
$.getJSON(
"<?php echo url::site('product/get_model_like_series'); ?>",
{ series: $series },
function(data) {
$("#product_model",
$('#product_form')).form_utils('replaceOptions', data);
});
});
$('产品系列\文本',$('产品\表单')。更改(函数(){
var$series=$(this.val();
//Ajax请求获取产品模型的更新列表
$.getJSON(
"",
{series:$series},
功能(数据){
$(“#产品#模型”,
$('product_form'))。form_utils('replaceOptions',data);
});
});
这里有很多jQuery,但是我们的想法是在一个下拉列表中设置一个eventlistener进行更改,然后启动一个Ajax查询(它轮询数据库并返回一个Json结果列表),然后为我们创建一个下拉列表(只需更改选项,因为下拉列表已经存在)使用AJAX向服务器发送请求并运行mysql查询。假设您没有使用JQuery,纯AJAX看起来是这样的:
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var data = xmlhttp.responseText;
//populating your select
}
}
xmlhttp.open("GET", "yourmethodpath", true);
xmlhttp.send();
}
为了从服务器请求额外的(和有条件的)数据,您需要查看,谢谢您指出这一点,但我以前从未使用过AJAX,因此您能为我指出一些有助于我开始这一工作的资源吗?谢谢您的回答!我可以让AJAX在服务器上执行php脚本吗?我以前也从未使用过AJAX,所以你能给我指一些资源来帮助我开始使用AJAX吗?我强烈推荐W3C AJAX教程。如果你知道一些html/javascript,这是一个速成班
<script>
function secondMenu(ddl1,ddl2){
var as=new Array('Japan','China');
var eu=new Array('Germany','France');
switch (ddl1.value) {
case 1:
document.getElementById(ddl2).options.length = 0;
for (i = 0; i < as.length; i++) {
createOption(document.getElementById(ddl2), as[i], as[i]);
}
break;
case 2:
document.getElementById(ddl2).options.length = 0;
for (i = 0; i < eu.length; i++) {
createOption(document.getElementById(ddl2), eu[i], eu[i]);
}
break;
}
function createOption(ddl, text, value) {
var opt = document.createElement('option');
opt.value = value;
opt.text = text;
ddl.options.add(opt);
}
</script>
$('#product_series_text', $('#product_form')).change(function() {
var $series = $(this).val();
// Ajax request to get an updated list of product models
$.getJSON(
"<?php echo url::site('product/get_model_like_series'); ?>",
{ series: $series },
function(data) {
$("#product_model",
$('#product_form')).form_utils('replaceOptions', data);
});
});
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var data = xmlhttp.responseText;
//populating your select
}
}
xmlhttp.open("GET", "yourmethodpath", true);
xmlhttp.send();
}