php - Ajax 无法给出成功响应
问题描述
我正在根据从 ajax 调用获得的姓名和 admission_year 获取学生的主题详细信息,但 ajax 无法给出成功响应,因此主题字段无法显示主题。Plz 需要解决方案如何获得成功消息。我的编码有什么问题吗?整个编码如下所示。脚本:
<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>
解决方案
首先是mysql_*
很久以前被弃用并在 PHP 7 中关闭。
使用mysqli_*
or PDO
withprepared 语句,这将帮助您防止代码被 SQL 注入。
其次,用于mysqli_num_rows()
检查是否获得结果然后您可以使用mysqli_fetch_array
。
您的代码中的问题是,您正在使用json_encode()
您的结果。但是获取结果result['subject2']
是错误的,您可以从 json 响应中获取结果,如下所示
result.subject2
最好在浏览器控制台中使用console.log(result)
和检查结果以进行调试。
一些有用的链接:
推荐阅读
- for-loop - 在多任务学习(Pytorch)中处理不同大小的数据
- saml - 我没有收到这种 SAML 请求的案例
- c# - ObservableCollection 没有更新,虽然我实现了 INotifyPropertyChanged
- python - 如何从命令行获取 pip 工作目录
- python - 在 Altair 中将发散的配色方案设置为以零为中心
- bash - OpenStack 的 curl 和脚本问题
- javascript - JavaScript Promise 声明差异
- java - 有没有办法让耶拿将 Json-ld 读入模型?
- python-3.x - 在python中将我的自定义CSV格式字符串转换为dict
- sql-server - 如何仅使用日期查询日期时间字段