【发布时间】:2017-10-12 19:14:23
【问题描述】:
我有一个页面,用户可以将 cmets 放在照片下方,在 php 中一切正常,cmets 进入数据库并显示在照片下方。 现在我正试图让它与 ajax 一起工作,但我遇到了一些麻烦。
我有一个 javascript 文档,其中包含:
$(document).ready(function(){
$("#btnSubmit").on("click", function(e){
var update = $("#activitymessage").val()
$.ajax({
method: "POST",
url: "./ajax/save_comment.php",
//data: { update: update}, - first version, not correct
data: { activitymessage: update},
datatype: 'json'
})
.done(function(response) {
console.log("ajax done");
console.log (response.message);
var ht = "<li>" + update + "</li>";
$("#listupdates").append(ht);
});
e.preventDefault();
});
});
php 页面 (save_comment.php) 告诉我如何处理输入文本:
<?php
spl_autoload_register(function ($class) {
include_once("../classes/" . $class . ".class.php");
});
$activity = new Comment();
if (!empty($_POST['activitymessage'])) {
$activity->Text = $_POST['activitymessage'];
try {
//$activity->idPost = $_GET['nr'];
//$activity->idUser = $_SESSION['user_id'];
// with this it works, but not yet correct
$activity->idPost = 66;
$activity->idUser = 3;
$activity->SavePost();
$response['status'] = 'succes';
$response['message'] = 'Update succesvol';
} catch (Exception $e) {
$error = $e->getMessage();
$response['status'] = "error";
$response['message'] = $feedback;
}
header('Content-type: application/json');
echo json_encode($response);
}
还有带有'Comment' 类和函数SavePost() 的文件Comment.class.php。这在没有 ajax 的情况下工作,所以我认为这个函数是正确的。
什么有效
- 评论(var update)在屏幕上打印到列表中。
- 控制台显示:“ajax 完成”
什么不起作用
- 输入文本不插入数据库(刷新页面时消失)
- 控制台显示:“未定义”(我在此函数中使用的“响应”肯定有问题)
我希望你们能帮助我。谢谢
更新 我更改了 js 文件中的 data: { activitymessage: update} 行,并手动设置 $activity->idPost = 66; 的值$活动->idUser = 3;一切正常!
我只想解决一件事
- 现在可以手动设置 $_GET['nr'] 和 $_SESSION['user_id'] 的值。这可以让这些自动化吗?
$_GET['nr'] 是页面的 id,分别是照片和 cmets。通过这种方式,我可以进行查询,返回该页面的所有 cmets。
$_SESSION['user_id'] 是用户的 id,所以我可以回显用户名和头像。
【问题讨论】:
标签: javascript php jquery json ajax