我做了一个简单的应用程序php&阿贾克斯,我不知道为什么它不起作用。
我的代码:
<?php
$grId = $_GET["groupId"];
$limit = $_GET["limit"];
if ($limit <= 0) {
$limit = 10;
}
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "productsdb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, displayName, role, groupId FROM user where groupId = ? limit ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $grId, $limit);
$stmt->execute();
$stmt->bind_result($id, $displayName, $role, $groupId);
$users = array();
while($stmt->fetch()) {
$user = new StdClass();
$user->id = $id;
$user->displayName = $displayName;
$user->role = $role;
$user->groupId = $groupId;
array_push($users, $user);
}
echo json_encode($users);
$stmt->close();
$conn->close();
?>
JSON-客户get.html:
<html>
<head>
<script src="jquery-2.1.4.js"></script>
<script>
$(document).ready(function() {
$('#students').hide();
$("#getStudentsButton").click(function() {
$.ajax({
dataType: "json",
type: "GET",
url: "getStudentsJson.php",
data: {
groupId: 1,
limit: 7
},
success: renderTable
});
});
function renderTable(data) {
var trHTML = '';
$.each(data, function(i, item) {
trHTML += '<tr><td>' + item.id + '</td><td>' + item.displayName + '</td><td>' + item.role + '</td> <td> ' + item.groupId + ' </td></tr>';
});
$('#students').append(trHTML);
$('#students').show();
}
});
</script>
</head>
<body>
Lista studentilor din grupul 1:
<div id="maindiv">
<table id="students" border="1">
<tr>
<th>Id</th>
<th>Name</th>
<th>Role</th>
<th>GroupId</th>
</tr>
</table>
</div>
<input id="getStudentsButton" type="button" value="Load students" />
</body>
</html>
我在phpmyadmin中创建了一个新的数据库productsdb,其中包含表用户并插入了一个值。
当我运行localhost / folder / json-client-get.html并按下按钮时,学生没有任何事情发生。
编辑(用我的数据库拍照,但我不知道为什么照片不能正常工作)
答案 0 :(得分:1)
我测试了你的代码,你遇到了SQL的问题:
$sql = "SELECT id, displayName, role, groupId FROM user where groupId = ? limit ?";
检查表格结构并确保您拥有这些字段
确保在phpmyadmin中运行此查询并查看结果
SELECT id, displayName, role, groupId FROM user where groupId = 1 limit 7
答案 1 :(得分:0)
这个答案不会解决您的问题,只是告诉您如何调试您的ajax调用。我认为,通过了解如何解决问题,您将从中获益更多,而不是解决问题。
看看下面的ajax调用:
$(document).ready(function(e) {
$.ajax({
url: 'ajaxScript.php',
type: 'POST',
data: {
'somevar': 'somevalue'
},
success: function(result)
{
alert('Successfully called');
},
error: function(exception)
{
alert('Exeption:'+exception);
}
})
})