AJAX只返回一条记录

时间:2016-12-14 08:04:13

标签: php jquery mysql ajax

我的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()语句并尝试执行它。这次它显示所有记录。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

我的错误

我改变了......

$.ajax({
       .....
       type: "post",

type: "get",和......

check_course.php 中的

$ct = $_POST['CourseType'];更改为$ct = $_GET['CourseType'];并获得了结果。

XHR Mode

感谢您Raphioly-San的评论。

  

其他内容无法在您的配置中使用。

实际上它应该是。因为我想通过passing key value获得结果。

因此我的错误