我正在从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>
答案 0 :(得分: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?