我试图从数据库中获取下一个下拉列表的值,这将取决于之前的两个下拉列表。前两个下拉列表的值列在文件本身中。我希望在从第一个选择值后启用第二个下拉菜单,并且在第二个选择值后类似地启用第二个下拉菜单。请帮助。 HTML代码如下:
<form>
<select id="branch" name="branch" class="form-control" onchange="showUser(this.value)">
<option value="">Select</option>
<option value="1">Civil</option>
<option value="2">Computer</option>
<option value="3">Mechanical</option>
<option value="4">Electronics and Telecommunications</option>
<option value="5">Electrical and Electronics</option>
<option value="6">Information Technology</option>
</select>
<select id="semester" name="semester" class="form-control" disabled>
<option value="1">I</option>
<option value="2">II</option>
<option value="3">III</option>
<option value="4">IV</option>
<option value="5">V</option>
<option value="6">VI</option>
<option value="7">VII</option>
<option value="8">VII</option>
</select>
</form>
jquery是:
<script>
$(document).ready(function(){
document.cookie = "s =hello" ;
console.log('hello');
$("#semester").attr("disabled", true);
$("#branch").change(function(){
$("#semester").attr("disabled", false);
$b = $('#branch').val();
$("#semester").change(function(){
$s = $('#semester').val();
$("#sub_code").attr("disabled", false);
console.log($s);
if($s!=1||$s!=2)
$s = $b+$s;
<?php
$s= $_COOKIE['s'];
$sql = "SELECT * FROM subjects WHERE sem_code=`$s`";
?>
});
});
});
</script>
我没有运行查询,因为它尚未正确分配。
答案 0 :(得分:1)
您不能在javascript中包含php代码,第一个在服务器端执行,第二个在客户端执行,这意味着只有在重新发送请求时才能重新执行到服务器,显然这通常是通过提交表单完成的,但有时候 - 就像你的情况一样 - 我们不想为每个请求重新加载整个页面!为此我们使用AJAX ajax将post / get请求发送到指定的php页面,该页面执行所需的服务器端任务(更新数据库中的数据,从数据库中选择一些结果,可能会处理会话等等) 尝试这样的事情:
var pathurl='/path/to/your/php/file';
var params={}; //the parameters you want to send
params['semester']=$s;
var requestData= $.ajax({
type: 'POST',
url: pathurl,
cache: 'false',
data: params,
dataType: "json",
beforeSend: function () {
//here you can begin an animation or anything...
},
complete: function () {
//here you can stop animations ...
},
success: function (response) {
console.log(response); //check your console to verify the response
//loop other elements inside response
$.each(response, function (index, resultArray) {
//do something : in your case append to dropdown a new option
});
}
});
requestData.error(function () {
alert("error");
});
你应该使用上面代码中指定的路径创建一个php文件,在那里你可以从数据库表中提取你需要的东西,在一个数组中存储值,最后使用:
echo json_encode($resultArray);
希望这很有帮助