【发布时间】:2017-11-25 22:51:06
【问题描述】:
我想打印所有 sql 表并在 html 表中显示它们。我是 php、JSON 和 AJAX 的新手。我成功发送用户名并在 php 中获得结果。我认为 JSON 部分或 AJAX 存在问题。谁能帮帮我?
index.php
<div class="col-lg-6">
<p id="usr" style="color:gray; font-size: 48px;"></p>
<script type="text/javascript">
var usr = document.getElementById("dom-target");
var username = usr.textContent;
username = username.trim().replace(/ /g, '%20');
document.getElementById("usr").innerHTML = username;
var sendtophp = "username="+username;
$.ajax({
type: "POST",
url: "getcoursetable.php",
data: sendtophp,
dataType:"json",
success: function(response) {
console.log(response);
var trhtml ='';
document.getElementById("demo").innerHTML = response;
$.each(response, function (i, item) {
trHTML += '<tr><td>' + item.cname + '</td><td>' + item.subject + '</td><td>' + item.course + '</td><td>'+ item.grade + '</td></tr>';
});
$('#results').append(trHTML);
}
});
</script>
<table id="results"></table>
</div>
getcoursetable.php
<?php
include_once "connection.php";
if(isset($_POST["username"])){
$nick = $_POST["username"];
$prep = "SELECT * FROM `enrolledtable` WHERE nickname='$nick'";
$results = mysqli_query($con, $prep);
$jsonData = array();
while ($row = $results->fetch_row()) {
$jsonData[] = $row;
}
echo json_encode($jsonData);
}
?>
现在,我可以打印数据,但不像表格那样
<p id="demo">denemee,CS,300,B,denemee,CS,301,B ,denemee,CS,305,B ,denemee,CS,307,B,denemee,CS,408,A-,denemee,IE,208,B ,denemee,MATH,306,B</p>
【问题讨论】:
-
1) 不要使用 mysql_* 函数,这些函数多年来被证明是不安全的 See reference。使用 mysqli_* 或 PDO。 2) 然后,要显示结果,请查找 Datatables -- 从一开始就学习这样做可以节省很多时间。
-
在这个项目中,安全并不重要,但谢谢。数据表哪里出错了?
-
安全总是很重要...
-
我会注意安全@LouysPatriceBessette
-
您的 PHP 结果数组(仍然可以在编辑历史记录中看到)已完美形成可与 Datatables 一起使用。这将为您节省很多时间...寻找它。重新发明轮子绝对没有任何收获。