我有一个页面,用户可以将评论放在照片下面,一切正常在PHP中运行,评论转到数据库并显示在照片下方。 现在我试图让它与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.class.php,其中包含'Comment'类和函数SavePost()。这没有ajax,所以我认为函数是正确的。
什么有效
什么不起作用
我希望你们能帮助我。感谢名单
更新 我更改了js文件中的:data:{activitymessage:update}行,并手动设置$ activity-&gt; idPost = 66的值; $ activity-&gt; idUser = 3;一切正常!
我只想修理一件事
$ _GET ['nr']是照片的页面ID和评论。通过这种方式,我可以创建一个返回该页面所有注释的查询。
$ _SESSION ['user_id']是用户的ID,因此我可以回显用户名和个人资料照片。
答案 0 :(得分:2)
您发送的密钥为update
而不是activitymessage
将数据更改为:
data: { activitymessage: update}
或将$_POST['activitymessage']
更改为$_POST['update']
此外,您在用于ajax的网址中没有$_GET['nr']
。没有显示任何内容可以帮助我们解决这个问题,但你需要网址看起来更像:
url: "./ajax/save_comment.php?nr=" + nrSourceValue,
不确定为什么需要使用$_GET['nr']
并且不使用$_POST
,并且nr
属性也要用于发送的数据对象