0

我正在尝试使用 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 文件。(卡在发帖上-> http://prntscr.com/10dmjt

提前谢谢你:)

4

3 回答 3

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()功能会处理它,所以我怀疑您需要一个escape()地方 - 还是ajax为您做?我想这就是@errieman's{}派上用场的地方......它将整个事物变成一个对象并为您处理逃逸的情况。这将使您需要的线路:

data: {id: post_script + id, c_post: c_post}

我怀疑这是否完全正确,因为我不得不猜测您要做什么-但我确实希望其中一个能给您解决问题的灵感。

于 2013-04-12T14:11:32.407 回答
0

$("#post_submit").click(function()当我取出语句并将 varc_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();
    }
  });
};
于 2013-04-13T03:12:11.753 回答
0

函数中的 data 属性ajax()必须是 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();
            }
        });
    });
}
于 2013-04-12T13:09:33.390 回答