我在MySQL数据库中有一些数据。我想根据用户选择的参数在html表中显示该数据。 以下是输入部分(HTML)
<form class="form-inline">
<div class="input-group">
<div>Enter Person Name</div>
<input class="form-control" id="tags">
</div>
<div class="btn-group">
<button type="submit" id="btnSubmit">Search</button>
</div>
</form>
这是我想要填充来自AJAX响应的数据的表。
<div class="dataTable_wrapper">
<table class='table table-striped table-bordered table-hover' id='records_table'>
<tr class='odd gradeX'>
<th>Name</th>
<th>Group</th>
<th>Work</th>
<th>Grade1</th>
<th>Grade2</th>
<th>Grade3</th>
<th>TeacherName</th>
<th>RollNo</th>
</tr>
</table>
</div>
现在点击“搜索”按钮,我想将名称发送到PHP文件,并获取信息表格数据库。
我已经这样做了:
$(document).ready(function () {
$("#btnSubmit").click(function (e) {
e.preventDefault();
var selText = $('#tags').val();
if (selText === '') {
alert("Please select a name!");
} else {
$.ajax({
type: 'GET',
url: 'getData.php',
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
jsonp: false,
data: {
q: selText
},
success: function (response) {
alert(response);
var trHTML = '';
$.each(response, function (i, item) {
$.each(item, function (_, o) {
trHTML += '<tr><td>' + o.Name +
'</td><td>' + o.Group +
'</td><td>' + o.Work +
'</td><td>' + o.Grade1 +
'</td><td>' + o.Grade2 +
'</td><td>' + o.Grade3 +
'</td><td>' + o.TeacherName +
'</td><td>' + o.RollNo. +
'</td></tr>';
});
});
$('#records_table').append(trHTML);
},
error: function (e) {
$("#txtHint").html(e.responseText);
}
});
}
});
});
PHP代码是
<?php
$servername = "localhost"; $username = "root"; $password = "21343"; $dbname = "do_demob";
$selectedName = $_GET['q'];
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT *** Don't have rights to reveal";
$result = mysqli_query($conn, $sql);
$rows = array();
if($result) {
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
}else {
echo 'MySQL Error: ' . mysqli_error();
}
$json = json_encode($rows);
echo $json;
mysqli_close($conn);
?>
AJAX响应是
[{"Name":"Sagar Mujumbdar","Group":"","TeacherName":"John Cena","RollNo":"SX51998","Work":"Sales","Grade1":"Good","Grade2":"5","Grade3":"1"}]
状态代码是:200 OK。我还检查了开发人员工具的网络部分,数据完全正确,格式正确。关键名称也是正确的。 但不幸的是,数据没有显示在表格中。 是因为JSON对象包含空值而不显示? 如果没有,那么还有什么原因呢?
答案 0 :(得分:1)
RollNo
后面有语法错误:
'</td><td>' + o.RollNo. +
删除.
。
在你的迭代中,你将一个元素深入,o.*
将是未定义的,因为o
已经是"Sagar Mujumbdar"
,""
等。一个{ {1}}就足够了:
.each
我还使用您的AJAX响应创建了fiddle。
答案 1 :(得分:1)
尝试以下逻辑。可能有一些错误,如大括号和逗号,因为我在这里编辑它。尝试表标题也在javascript中。我在下面做了。请检查
,3