2017-03-08 16 views
-3

私は関数内のパラメータを送信しようとしていますが、ループ内にあります。次回同じ関数を選択すると、先ほどの値を先に送ってきます。私のコードをあなたに教えてください。関数に渡された関数パラメータを空にする方法は?

$(window).load(function(e) { 
    loadmore(); 
    select_likes(); 
    select_share(); 
    // get_recieve_friend_requests(); 
    // get_sent_friend_requests(); 
}); 

function loadmore() { 
    var lastID = $('.load-more').attr('lastID'); 
    // alert(lastID); 

    jQuery.ajax({ 
    type: 'POST', 
    url: '<?php echo base_url("user/get_all_post"); ?>', 
    data: { 
     id: lastID 
    }, 
    dataType: 'json', 
    beforeSend: function(data) { 
     $('.load-more').show(); 
    }, 
    success: function(data) { 
     var ParsedObject = JSON.stringify(data); 
     var json = $.parseJSON(ParsedObject); 

     if (json == "") { 
     $("#bottom").append('<div class="btn btn-default col-md-6" >' + 'No More Results' + '</div>'); 
     $("#Load_more_data").hide(); 
     } else { 
     $postID = json[json.length - 1].id; 
     $('.load-more').attr('lastID', $postID); 
     $.each(json, function(key, data) { 
      var post_id = data.id; 
      var post_status = data.status; 
      var status_image = data.status_image; 
      var multimage = data.multimage; 

      if (!post_status == "" && !status_image == "") { 
      alert(post_id); 
      $("#status_data").append('<div class="media-body"><div class="input-group"><form action="" id="form_content_multimage"><textarea name="textdata" id="content_comment_multimage" cols="25" rows="1" class="form-control message" placeholder="Whats on your mind ?"></textarea><button type="submit" id="comment_button_multimage" onclick="comment_here_multimage(' + post_id + ');" >Comment</button><?php echo form_close();?></div></div></li></ul></div></div>'); 
      } 
     }); 
     } 
    } 
    }); 
} 

function comment_here_multimage(post_id) { 
    $(document).on('click', '#comment_button_multimage', function(e) { 
    // this will prevent form and reload page on submit. 
    e.preventDefault(); 
    var post_id_multimage = $('#post_id_multimage').val(); 
    // here you will get Post ID 
    alert(post_id_multimage); 
    var Post_id = post_id; 
    alert(post_id); 

    if (post_id == post_id_multimage) { 
     var User_id = $('.id_data').attr('value'); 
     var textdata = $('#content_comment_multimage').val(); 
     alert(textdata); 
     alert(Post_id); 
     $.ajax({ 
     type: 'POST', 
     url: '<?php echo base_url("user/post_comment"); ?>', 
     data: { 
      Post_id: Post_id, 
      User_id: User_id, 
      textdata: textdata 
     }, 
     dataType: 'json', 
     success: function(data) { 
      console.log(data); 
      alert('you have like this'); 
      jQuery('#form_content_multimage')[0].reset(); 
      Post_id = ""; 
     } 
     }); 
    } else { 
     return false; 
    } 
    }); 
} 

post_idのはcomment_here_multimageのonclickのイベントを渡されているが、私は初めて同じidの後に、それをクリックwhenver再び第1、次のIDが渡さ渡されています。完了したらpost_idの値を空にすることができます。

これらの画像を見て、わからないことがあるかどうか教えてください。

[![first time comment][1]][1]  
[![second time comment][2]][2] 
[![second time comment][3]][3] 


    [1]: https://i.stack.imgur.com/b36o4.png 
    [2]: https://i.stack.imgur.com/ahg3W.png 
    [3]: https://i.stack.imgur.com/taHAS.png 
+1

のようにコードを変更できますか?私は、あなたがしようとしていることをどちらの問題にも理解することはできませんでした。あなたのHTMLの – rafaelxy

+0

には、ポスト関数の実行後に別の値が追加されますか? – bxN5

+0

編集した@rafaelxyを見てください –

答えて

2

問題はコードでは分かりません。しかし、私の理解によると。

動的HTMLを作成するときに、ボタンのクリックイベントで "comment_here_multimage"関数をバインドしています。 コンテキストがロードされ、ユーザーがそのボタンをクリックすると、別の機能を同じボタンに再度バインドします。これは最終的にイベントスタックに追加されます。

初めてユーザーがボタンをクリックしても何も起こりませんが、アクションはありません。初めて、ハンドラを登録します。 ユーザーがもう一度クリックすると、最初のクリックで添付されたハンドラーが起動し、古いpostidが供給されます。

あなたの問題はパラメータを渡すことだと思います。カスタムパラメータで設定し、後でクリックハンドラで取得できます。または、以下のようにハンドラを変更することもできます。

あなたは、あなたがより良い問題を特定することができ、この

onclick="comment_here_multimage(this,' + post_id + ');" 

    function comment_here_multimage(e,post_id) { 

    // this will prevent form and reload page on submit. 
    e.preventDefault(); 
    var post_id_multimage = $('#post_id_multimage').val(); 
    // here you will get Post ID 
    alert(post_id_multimage); 
    var Post_id = post_id; 
    alert(post_id); 

    if (post_id == post_id_multimage) { 
     var User_id = $('.id_data').attr('value'); 
     var textdata = $('#content_comment_multimage').val(); 
     alert(textdata); 
     alert(Post_id); 
     $.ajax({ 
     type: 'POST', 
     url: '<?php echo base_url("user/post_comment"); ?>', 
     data: { 
      Post_id: Post_id, 
      User_id: User_id, 
      textdata: textdata 
     }, 
     dataType: 'json', 
     success: function(data) { 
      console.log(data); 
      alert('you have like this'); 
      jQuery('#form_content_multimage')[0].reset(); 
      Post_id = ""; 
     } 
     }); 
    } else { 
     return false; 
    } 
    ; 
} 
+0

私のページを再読み込みして動作しない@Mudassar Hasnain –

+0

onclick = "comment_here_multimage(this、 '+ post_id +');"あなたの追加divコードでこの行を変更しました –

+0

私は自分の値を選択するためにセレクタが必要ですが、私のデータベースに値を入力する必要がありますが、動作していません@Mudassar Hasnain –

関連する問題