我的MySQL
表 course
有两条记录。
---------------------------
| id | abc |
---------------------------
| 1 | Honours |
---------------------------
| 2 | General |
---------------------------
CourseType
<select class="form-control" name="CourseType" id="CourseType">
<option value="">Select..</option>
<option value="Mainstream">Regular/Mainstream Course</option>
<option value="Vocational">Vocational Course</option>
</select>
我的Ajax如下......
$("#CourseType").change(function () {
var CourseType = $(this).val();
$('#ldr').show();
//alert(CourseType);
$.ajax({
url: 'core/check_course.php',
data: {'CourseType': CourseType},
dataType:'json',
type: "post",
success: function(data){
//alert(data);
console.log(data.length);
console.log(data);
var course = $("#course");
course.html('');
$.each(data, function(idx, elem){
//alert(elem.id);
course.append('<option value="'+elem.id+'">'+elem.abc+'</option>');
$('#ldr').hide();
});
}
});
});
check_course.php
$ct = $_POST['CourseType'];
$data = array();
if($ct==='Mainstream'){
$sql = mysql_query("SELECT * FROM course");
while($qry = mysql_fetch_array($sql)){
$data[]=array(
'id' => $qry['id'],
'abc' => $qry['abc']
);
}
} else {
$sql1 = mysql_query("SELECT * FROM course WHERE abc='General'");
while($qry1 = mysql_fetch_array($sql1)){
$data[]=array(
'id' => $qry1['id'],
'abc' => $qry1['abc']
);
}
}
echo json_encode($data);
问题是,它只显示一条记录。看来,它没有识别if($ct==='Mainstream'){
并且只执行/获取第二个query
,即SELECT * FROM course WHERE abc='General'
。
我删除了if()
语句并尝试执行它。这次它显示所有记录。
我该怎么办?
答案 0 :(得分:1)
我的错误
我改变了......
$.ajax({
.....
type: "post",
到type: "get",
和......
check_course.php
中的将$ct = $_POST['CourseType'];
更改为$ct = $_GET['CourseType'];
并获得了结果。
感谢您Raphioly-San的评论。
其他内容无法在您的配置中使用。
实际上它应该是。因为我想通过passing
key value
获得结果。
因此我的错误。