-1

我有一个包含多个表单的页面,它们执行相同的操作,充当like页面中每个帖子的按钮,并且在它旁边是名为“likes”.$id 的 div 中的喜欢数,因此我可以确定在哪里在ajax调用之后写下喜欢计数。我试图使用 jQuery ajax 函数,但我无法设置什么 div 来编写函数的结果。

$.ajax({
  type:'POST', 
  url: 'likepost.php', 
  data:$('#like').serialize(), 
  success: function(response) {
    $('#like').find('#likediv').html(response);
  }
});

我将如何访问 likepost.php 上的数据?我对javascript很糟糕,所以我希望有人能帮助我并解释jQuery函数是如何工作的,因为我一直在复制和粘贴它而不知道我在做什么。

这行得通吗?

    $(function () {

    $("#likebutton").click(function () {

            var id = $('input[name=id]'); // this is me trying to get a form value

        $.ajax({
           type: "POST",
           url: "likepost.php",
           data: $("#like"+id).serialize(), // the form is called like+id e.g. like12
           success: function(data){

                 $("#likes"+id).html(data); // write results to e.g. <div id='likes12'>

               }
         });            
    });
});

我把它放在代码中,但是当点击按钮时,通常的帖子刷新页面就完成了。这是为什么?

4

3 回答 3

0

当您真正想做的只是将 ID 发送到 likepost.php 脚本时,制作一个迷你表单、对其进行序列化并发布它似乎是一项繁重的工作。

为什么不直接检索 ID 并将其发布到脚本中呢?

于 2012-07-07T04:26:25.587 回答
0

首先让我们分解您的函数:Type 是我们正在发出的请求的类型,您在此处指定 POST。这意味着在您的 PHP 文件中,您将使用 $_POST 访问我们发送的数据。接下来是 URL,它只是您发送数据的 URL,在这种情况下是您的 php 文件。

之后是数据,即我们发送到 url (likepost.php) 的数据。您正在序列化 ID 为“like”的任何内容并将其发送到 php 文件。最后成功是一个函数,一旦请求成功就运行,我们从 PHP 中得到一个响应,并在函数中使用它来输出响应。

至于多种形式,我建议这样做: http ://www.kavoir.com/2009/01/php-checkbox-array-in-form-handling-multiple-checkbox-values-in-an-array .html

这是我们讨论过的内容的文档,如果您对 jquery 感到困惑,只需将其分解并搜索每个部分。

http://api.jquery.com/serialize/

http://api.jquery.com/jQuery.ajax/

于 2012-07-07T04:36:10.447 回答
0

你可以试试 :

function submitform(id) {
    var jqxhr = $.post('./likepost.php',$("#"+id).serialize(), function(data) {
        $("#"+id).find('#likediv').html(data);
    }, "json")
    return false;
}

通知:

<form method="post" id="likeForm" onsubmit="return submitform(this.id);">
    <input..... />
    <input type="submit" value="Submit" />
</form>

在 likepost.php 添加第一行:

if ($_SERVER['HTTP_X_REQUESTED_WITH'] != "XMLHttpRequest") {
    header("location: " . $_SERVER['HTTP_REFERER']);
    exit();
}

你可以看到更多:http://api.jquery.com/serialize/ 为我工作。

于 2014-09-26T08:34:21.033 回答