Java 如何根据不同的下拉选择更改下拉值
我在php页面中加载了一个servlet 这是我的php页面:reviewing.phpJava 如何根据不同的下拉选择更改下拉值,java,javascript,php,Java,Javascript,Php,我在php页面中加载了一个servlet 这是我的php页面:reviewing.php if(isset($_GET['x'])){ $x = $_GET['x']; }else{ $x = ''; } $site = $_SERVER['SERVER_NAME']; if(isset($_GET['id'])){ $Id = "id=".$_GET['id']; }else{ $Id = ""; } $handle = fopen("http://".$
if(isset($_GET['x'])){
$x = $_GET['x'];
}else{
$x = '';
}
$site = $_SERVER['SERVER_NAME'];
if(isset($_GET['id'])){
$Id = "id=".$_GET['id'];
}else{
$Id = "";
}
$handle = fopen("http://".$site.":8080/Apps/reviewing.php?$Id", "r");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
echo $contents;
如您所见,我的php页面加载了一个servlet。servlet是流程发生的地方。它还包括servlet中的JSP和html页面
我需要能够改变一个下拉菜单的值时,另一个下拉菜单的选项已经改变。它们都是单独的mysql查询,但只有当下拉列表发生变化时,我才需要运行第二个查询。我这样做的原因是,我可以在dropdown2查询中使用dropdown1的值作为WHERE
我试过类似的东西
function reload(form)
{
var ID = form.agent.options[form.agent.options.selectedIndex].value;
return ID;
}
此功能进入
然后我想使用ID来运行下一个查询
<select>
//javascript
if(isset(reload())){
//JAVA
run query here WHERE id = ID;
while(rs.next()){
outn.print("<option>" + rs.getString("value") + "</option>");
}
}
</select>
但是我不想一直重新加载页面。这是低效的。好的,在编写程序之前,您应该如下所示:
- 在select元素onchange attribute中(就像您所做的那样)
- 用JS
- 使用jQuery
我希望php不包含错误。我无法测试它。如果有错误,那么只需检查拼写是否正确,以此类推……是否可以用另一种方式解释您正在尝试的内容。我不明白。。。也许你可以简化这个问题,或者试着把它概括起来。基本上,当我在DropdDown1上选择一个选项时,我希望dropdown2使用dropwdown1的ID填充一个查询。你能举个例子说明我如何做到这一点吗?我有点迷路了。好吧,你问了这样一个问题,半天之后你就失去了兴趣……我道歉。我还没有机会回到这个项目上来。我有急事,但星期三会回来的。我很感激你的意见,到时候会对它进行测试。
self.location='http://exmaple.com/reviewing.php?x=blah&ID=blah;
<select id='select1'>
<option id='option_1' value='1'>Option 1</option>
<option id='option_2' value='2'>Option 2</option>
<option id='option_3' value='3'>Option 3</option>
<option id='option_4' value='4'>Option 4</option>
</select>
<select id='select2'>
</select>
document.getElementById('select1').onchange = function(){
var xmlhttp=new XMLHttpRequest();
var params = "id="+this.value //you can add more data, use & as delemitter
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
fillSelect(xmlhttp.responseText);
}
}
xmlhttp.open("POST","path/to/php.php",true);
xmlhttp.send(params);
}
var fillSelect = function(response){
//Here you can go through all elements from response
//and build new options and append them to Select2
}
if (!isset($_POST('id')) die("Submission failed!");
$id = $_POST('id');
$mysqli = new mysqli(HOST, USER, PW, DB); //assuming you have these static variables, change it for your settings
//use $id now to create the query
$query = "[...]";
$result = $mysqli->query($query);
echo json_encode($result);