【发布时间】:2017-08-09 22:51:24
【问题描述】:
我正在使用这个 ajax 函数通过 ajax 获取两个下拉列表的选项,但它没有返回任何输出。 嗨,这是我的 ajax 函数:
<script>
$('#department').on('change',function(){
var department = $(this).val();
var course = $('#course').val();
if(department){
$.ajax({
type:'POST',
url:'ajaxData.php',
dataType: 'json',
cache: false,
data:{department: department, course: course },
success: function(data){
$('#head_name').html(data.head_name);
$('#email').html(data.email);
}
});
}else{
$('#head_name').html('<option value="">Select Department first</option>');
$('#email').html('<option value="">Select Department first</option>');
}
});
</script>
这是我的查询代码:
if(isset($_POST["department"]) && isset($_POST["course"])){
//Get all courses data
$query = $db->query("SELECT head_name, email FROM head WHERE course = '".$_POST['course']."' AND department = '".$_POST['department']."' ");
//Count total number of rows
$rowCount = $query->num_rows;
//Display result list
if($rowCount > 0){
while($row = $query->fetch_assoc()){
$temp = array('head_name' => '<option value="'.$row['head_name'].'">'.$row['head_name'].'</option>', 'email' => '<option value="'.$row['email'].'">'.$row['email'].'</option>' );
echo json_encode($temp);
}
}else{
$temp = array('head_name' => '<option value="">Not avaialble </option>', 'email' => '<option value="">Not avaialble </option>' );
echo json_encode($temp);
}
}
但我没有得到输出结果,我做错了什么?
【问题讨论】:
-
使用console.log(data)查看返回输出,并在使用返回数据对象之前解析json。
-
在分配
$('#course').val()的结果后,尝试通过console.log输出course。如果未定义,您将不会得到任何响应。 -
@TobiasF。我已经输出了课程和部门的价值,他们工作得很好。
-
我认为你应该试试@scaisEdge 的回答,看来他是对的。
-
如果您还没有意识到,您的代码很容易受到 SQL 注入攻击。请改用参数化查询。