注释栏mysql php和ajax
我正在尝试使用PHP、AJAX、MySQL和json编码创建一个简单的注释栏 我有两个用php编写的文件,第一个是控制器,代码如下:注释栏mysql php和ajax,php,mysql,ajax,json,apache,Php,Mysql,Ajax,Json,Apache,我正在尝试使用PHP、AJAX、MySQL和json编码创建一个简单的注释栏 我有两个用php编写的文件,第一个是控制器,代码如下: <?php require("../includes/config.php"); if ($_SERVER["REQUEST_METHOD"] == "GET") { $comments = query("SELECT comments.comment, comments.author, comments.time FROM
<?php
require("../includes/config.php");
if ($_SERVER["REQUEST_METHOD"] == "GET") {
$comments = query("SELECT comments.comment, comments.author, comments.time FROM comments WHERE workid = ?", $_GET["workid"]);
echo json_encode($comments);
}
else if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_SESSION["userid"])) {
throw new Exception("Login");
}
else {
$result = query("INSERT INTO comments (comment, author, time, workid) VALUES(?, ?, ?, ?)", $_POST["text"], $_SESSION["userid"], date("Y-m-d H-i-s"), $_POST["workid"]);
if ($result !== false) {
echo "success";
}
}
}
?>
第二个是根据来自控制器的数据显示MySQL的记录:
<script>
//loads the comments
$(document).ready(function(){
var comment;
$.ajax({
type: "GET",
url: "../html/comments.php",
data: {
workid: <?php echo $id;?>
},
dataType: "json",
success: function(e) {
var lis = "";
for (var i = 0; i < e.length; i++) {
comment = e[i];
lis +=
"<li class='comment'>" +
"<div class='well'>" +
"<p>" +
"<a class='username' href='#'>" + comments.author + ": " + "</a>" +
comments.comment +
"</p>" +
"<small class='pull-right'>" + comments.time + "</small>" +
"</div>" +
"</li>";
}
$("#comments").html(lis);
},
error: function(e) {
$("#comments").html(
"<li class='comment'> Couldn't load comments </li>"
);
}
});
});
</script>
<script>
$(document).ready(function(){
$("#comment-button").click(function(){
$.ajax({
type: "POST",
url: "../html/comments.php",
data: {
workid: <?php echo $id;?>,
text: $("#comment-textarea").val()
},
dataType: "text",
success: function(e) {
var comment;
$.ajax({
type: "GET",
url: "../html/comments.php",
data: {
workid: <?php echo $id;?>
},
dataType: "json",
success: function(e) {
var lis = "";
for (var i = 0; i < e.length; i++) {
comment = e[i];
lis +=
"<li class='comment'>" +
"<div class='well'>" +
"<p>" +
"<a class='username' href='#'>" + comments.author + ": " + "</a>" +
comments.domment +
"</p>" +
"<small class='pull-right'>" + comments.time + "</small>" +
"</div>" +
"</li>";
}
$("#comments").html(lis);
$("#comment-textarea").val("");
},
error: function(e) {
$("#comments").html(
"<li class='comment'> Couldn't load comments </li>"
);
}
});
}
});
});
});
</script>
//加载注释
$(文档).ready(函数(){
var评价;
$.ajax({
键入:“获取”,
url:“../html/comments.php”,
数据:{
工作ID:
},
数据类型:“json”,
成功:职能(e){
var lis=“”;
对于(变量i=0;i”+
"" +
“”+
"" +
comments.comment+
“”+
“”+注释。时间+“”+
"" +
“”;
}
$(“#评论”).html(lis);
},
错误:函数(e){
$(“#注释”).html(
“无法加载评论”
);
}
});
});
$(文档).ready(函数(){
$(“#注释按钮”)。单击(函数(){
$.ajax({
类型:“POST”,
url:“../html/comments.php”,
数据:{
工作ID:,
文本:$(“#注释文本区域”).val()
},
数据类型:“文本”,
成功:职能(e){
var评价;
$.ajax({
键入:“获取”,
url:“../html/comments.php”,
数据:{
工作ID:
},
数据类型:“json”,
成功:职能(e){
var lis=“”;
对于(变量i=0;i”+
"" +
“”+
"" +
comments.doment+
“”+
“”+注释。时间+“”+
"" +
“ ”;
}
$(“#评论”).html(lis);
$(“#注释文本区域”).val(“”);
},
错误:函数(e){
$(“#注释”).html(
“无法加载评论”
);
}
});
}
});
});
});
除了最后一步,一切都很顺利;显示数据库中的数据时,唯一显示的是语句“undefined”,而不是corect数据。除此之外,注释量和表单显示正确。我使用的是安装了php的Apache服务器。在JavaScript代码中,您需要将
注释替换为注释。
,因为注释在JaveScript中确实是一个未定义的对象。代码是PDO吗?是的,是的。PDO也已启用。请给我们提供方法/函数查询()的代码@jakubedclacek:您尝试过我的建议吗?有效吗?-1表示没有回复@ExpertSystem,1表示他们的答案。