ajax发布数据并插入数据库

时间:2013-04-12 13:00:33

标签: php ajax

我正在尝试使用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

提前谢谢你:)

3 个答案:

答案 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();
    }
  });
};