-1

同じことを行う複数のフォームを含むページがあり、ページlike内の各投稿のボタンとして機能し、そのすぐ隣に「likes」という名前のdiv内のいいねの数があります。$ id、どこにあるかを特定できます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

あなたが試すことができます :

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 に答える
0

ID を likepost.php スクリプトに送信するだけの場合、ミニフォームを作成してシリアライズし、POST するのは大変な作業のように思えます。

ID を取得してスクリプトに投稿しないのはなぜですか?

于 2012-07-07T04:26:25.587 に答える
0

まず、関数を分解してみましょう: Type は、作成しているリクエストのタイプです。ここで POST を指定しました。これは、PHP ファイルで、$_POST を使用して送信中のデータにアクセスすることを意味します。次は URL です。これは、データを送信している場所の URL です。この場合は、php ファイルです。

その後は data です。これは、url (likepost.php) に送信するデータです。「like」の ID を持つものをシリアル化し、それを php ファイルに送信しています。最後に、success は、リクエストが成功したときに実行する関数です。PHP から応答を取得し、それを関数で使用して応答を出力します。

複数のフォームについては、次のようなことをお勧めし ます。 .html

jquery について混乱している場合は、jquery を分解して各部分を検索してください。

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

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

于 2012-07-07T04:36:10.447 に答える