Ajax无法给出成功回应

时间:2019-09-27 08:01:24

标签: php ajax

我正在从ajax调用获取基于名称和入学年份的学生的学科详细信息,但是ajax无法给出成功响应,因此学科领域无法显示学科。请解决如何获得成功消息的方法。我的编码有问题吗? 整个编码如下所示。 脚本:

<script type="text/javascript">
    $('#branch_name,#class_name').on('change', function(){
    //gender_new = $('#gender_new option:selected').val();

    class_name = $('#class_name option:selected').val();
    branch_name = $('#branch_name option:selected').val();
    name=$('#name').val();
    admission_year=$('#admission_year').val();

    $.ajax({
        type :'POST',
        dataType:'json',
        data : { class_name : class_name, branch_name : branch_name, name : name, admission_year : admission_year },
        url : 'tc_search.php',
        success : function(result){
         $('#subject1').val(result['subject1']);
         $('#subject2').val(result['subject2']);

        }
    });

});
</script>

tc_search.php

<?php
include('connection.php');

$class_name=$_POST['class_name'];
$admission_year=$_POST['admission_year'];
$name=$_POST['name']
$branch_name=$_POST['branch_name'];

$query = "SELECT * FROM admit_senior WHERE name = '$name' and admission_year='$admission_year'";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
echo json_encode($row);

?>

html:

<input type="hidden" class="form-control" id="admission_year" name="admission_year" readonly <?php echo "value='{$row1['admission_year']}' "?>/>

    <div class="form-group">
    <label class="col-sm-3 control-label">Name :</label>
    <div class="col-sm-3">
    <input type="text" class="form-control" id="name" name="name" <?php echo "value='{$row1['name']}' "?>/>
    </div>
    </div>
    <div class="form-group">
    <label class="col-sm-3 control-label">2) He/She appeared/did not appear examination:</label>
    <label class="col-sm-3 control-label">Branch Name:</label>
    <div class="col-sm-3">
    <select id="branch_name" name ="branch_name" class="form-control">
    <option selected disabled readonly>Select branch</option>
    <option value="B.A">B.A</option>
    <option value="B.Com">B.Com</option>
    </select>
    </div>
    </div>

    <div class="form-group">
    <label class="col-sm-3 control-label">Class Name:</label>
    <div class="col-sm-3">
    <select id="class_name" name ="class_name" class="form-control">
    <option selected disabled readonly>Select Class</option>
    <option value="Part-I">Part-I</option>
    <option value="Part-II">Part-II</option>
    <option value="Part-III">Part-III</option>
    </select>
    </div>
    </div>

    <div class="form-group">
    <label class="col-sm-1 control-label">1.</label>
    <div class="col-sm-3">
    <input type="text" class="form-control" name="subject1" id="subject1"/>
    </div>

    <label class="col-sm-1 control-label">2.</label>
    <div class="col-sm-3">
    <input type="text" class="form-control" name="subject2" id="subject2"/>
    </div>

1 个答案:

答案 0 :(得分:1)

所有{{1}中的

First 很久以前已被弃用,并在PHP 7中关闭。

在准备好的语句中使用mysql_*mysqli_*,这将有助于您防止使用SQL Injection编写代码。

第二,使用mysqli_num_rows()检查是否获得结果,然后可以使用PDO

代码中的问题是,您使用mysqli_fetch_array作为结果。但是获取错误的json_encode()之类的结果,您可以像这样从json响应中获取结果

result['subject2']

最好使用result.subject2 并在浏览器控制台中检查结果以进行调试。

一些有用的链接:

Are PDO prepared statements sufficient to prevent SQL injection?

How can I prevent SQL injection in PHP?