我正在尝试使用ajax插入评论。除了$ _POST之外,一切正常。它似乎没有发布数据,因此表中的注释字段为空。其他的工作正常,比如插入日期。我只对ajax有问题(在php中没有问题)。
无论如何,这是我的代码: -
<head>
<script>
function su_post(id) {
$("#load_post").show(),
$("#post_submit").click(function() {
var c_post = $("#c_post").val();
var dataString = '&c_post=' + c_post;
$.ajax({
type: "POST",
url: '/script/post.php',
data: "id=post_script" + id,
cache: false,
success: function(){
$("#load_post").fadeOut();
}
})});
};
</script>
</head>
<body>
<form id="form_post" method="post" action="javascript:su_post(1)">
<label for="c_post">Post your updates/status</label>
<input type="text" name="c_post" id="c_post" />
<br /><br /><input type="submit" id="post_submit" value="Post" />
</form>
</body>
编辑:因为你可能没有理解我;获取您在输入框中键入的值并将值发布或发送到post.php时出现问题。当我放data: {id: post_script + id, c_post: c_post}
时,代码似乎根本不加载php文件。 (卡在帖子上 - &gt; http://prntscr.com/10dmjt)
提前谢谢你:)
答案 0 :(得分:0)
ajax()
函数中的data属性必须是Object类型。像这样:
data: { id: "post_script" + id }
你也有一些语法错误,你的功能应该是这样的:
function su_post(id) {
$("#load_post").show();
$("#post_submit").click(function() {
var c_post = $("#c_post").val();
var dataString = '&c_post=' + c_post;
$.post("ajax_login.php",{ user_name:$('#username').val(),password:$('#password').val(),rand:Math.random() });
$.ajax({
type: "POST",
url: '/script/post.php',
data: { id: "post_script" + id },
cache: false,
success: function(){
$("#load_post").fadeOut();
}
});
});
}
答案 1 :(得分:0)
您正在调用函数javascript:su_post(1)
,因此您的数据字段似乎只包含{id: "post_script1"}
。您的“评论”在哪里传递给AJAX?在为其分配值后,您不会对var dataString
执行任何操作...
也许你想要这样的东西:
data: "id=post_script" + id + dataString,
因为,我认为dataString
包含&c_post=whatever the comment is
之后
var c_post = $("#c_post").val();
var dataString = '&c_post=' + c_post;
我确实想知道你是否还需要dataString
中的一些额外引用...我不相信$(#c_post).val()
函数可以处理它,所以我怀疑你需要{{1}某处 - 或escape()
为你做了什么?我想这就是@errieman的ajax
派上用场的地方......它将整个事物变成了一个对象,并为你提供了逃避的案例。这将成为你需要的线:
{}
我怀疑这一切都是完全正确的,因为我不得不猜测你想要做什么 - 但我希望其中一条会给你灵感来解决你的问题。
答案 2 :(得分:0)
当我拿出语句$("#post_submit").click(function()
并将var c_post = $("#c_post").val();var dataString = '&c_post=' + c_post;
放在顶部时似乎有效。
现在我的代码如下: -
function su_post(id) {
var c_post = $("#c_post").val();
var dataString = '&c_post=' + c_post;
$("#load_post").show(),
$.ajax({
type: "POST",
url: '/script/post.php',
data: {c_post:c_post},
cache: false,
success: function(){
$("#load_post").fadeOut();
}
});
};