我在StackOverflow上发布相当新,所以我希望我的帖子遵循正确的标准,如果我不道歉的话。我会尽量保持对问题的解释和解释。
我正在尝试创建一个输入字段,允许用户更新其个人资料中的“关于”部分,以便其他用户能够看到。我看过类似的帖子,但没有一个真的有解决方案可以解决我能找到的问题。
我正在使用一个带有POST方法的表单,该表单有一个隐藏字段,其中包含userId的值并存储输入字段中的字符串。我正在使用与id = "post"
按钮关联的Onclick函数调用Ajax请求,该请求将输入值存储到称为var text
的变量中,然后我将其存储到数据库中userId和评论。但是,控制台返回“空字符串”(图像链接在最底部)。我不知道如何解决这个问题,因为我仍然非常习惯使用Ajax,而且我正在努力学习。
myAccount.php
<h2>About</h2>
<form method='POST' id="postForm">
<input type='hidden' name='posterId' value="<?php echo $user['userId']?>">
<input name="post" id='post' value="">
<br/>
<br/>
<button type="button" onclick='setComment()' name='submit'>Post it</button>
</form>
main.js
function setComment() {
var text = $("#post").val();
$.ajax({
type: 'POST',
url: 'setAbout.php',
data: {'text': text},
success: function(data) {
console.log(data);
}
});
}
注意:如果您发布解决方案,请提供解释,说明为什么您采取这种特定方法,因为我在这里学习。谢谢!
答案 0 :(得分:0)
您使用AJAX发布:{text}变量,但在PHP代码中,您希望获得{posterId}变量。为什么?更改您的变量名称,并确保在JS和PHP代码中使用相同的名称变量。而在AJAX请求中,PHP无法返回任何内容。所以在PHP代码中,你应该使用'echo'来返回。
答案 1 :(得分:0)
<input type='hidden' name='posterId' value="<?php echo $user['userId']?>" id = 'posterId'>
function setComment() {
var text = $("#post").val();
var posterId=$('#posterId').val();
$.ajax({
type: 'POST',
url: 'setAbout.php',
data: {'text': text, 'posterId':posterId},
success: function(data){
console.log(data);
}
});
}
您正在检查PHP脚本中的变量posterId
,这是您在执行ajax调用时未设置的。
并且在脚本中您只是运行准备好的查询,您没有返回任何内容作为对您的请求的响应。因此,即使请求成功,您也不会在响应中获得要在控制台中打印的任何内容