gpt4 book ai didi

javascript - 将文本提交到数据库的 Ajax 调用不起作用

转载 作者:行者123 更新时间:2023-12-01 03:40:10 25 4
gpt4 key购买 nike

我有一个页面,用户可以在照片下方发表评论,在 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”类和函数 SavePost() 的文件 Comment.class.php。这无需 ajax 即可工作,因此我认为该功能是正确的。

什么有效

  1. 评论(var update)被打印在屏幕上的列表中。
  2. 控制台显示:“ajax 完成”

什么不起作用

  1. 输入文本不会插入数据库(页面刷新时消失)
  2. 控制台显示:“未定义”(我在此函数中使用的“响应”一定有问题)

希望大家能帮帮我。谢谢

<小时/>

更新我更改了 js 文件中的: data: { Activitymessage: update} 行,并手动设置 $activity->idPost = 66; 的值$事件->idUser = 3;一切正常!

我只想解决一件事

  1. 现在可以手动设置 $_GET['nr'] 和 $_SESSION['user_id'] 的值。有可能自动获得这些吗?

$_GET['nr'] 是照片和评论所在页面的 ID。通过这种方式,我可以进行查询,返回该页面的所有评论。

$_SESSION['user_id'] 是用户的 ID,因此我可以回显用户名和个人资料照片。

最佳答案

您发送数据的 key 是update而不是activitymessage

将数据更改为:

data: { activitymessage: update}

或者将 $_POST['activitymessage'] 更改为 $_POST['update']

<小时/>

此外,用于 ajax 的网址中没有 $_GET['nr'] 。没有显示任何内容可以帮助我们解决这个问题,但您需要使网址看起来更像:

url: "./ajax/save_comment.php?nr=" + nrSourceValue,

不确定为什么您需要使用 $_GET['nr'] 而不要使用 $_POST 以及 nr > 正在发送的数据对象的属性

关于javascript - 将文本提交到数据库的 Ajax 调用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43955148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com