2017-03-08 141 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事件,但whenver我第一次相同的ID後,點擊它被傳遞再次第一則下一個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

你能找出問題好?我沒有設法理解你想要做什麼以避免問題的產生。 – rafaelxy

+0

在你的html中執行post函數後有不同的append div值嗎? – 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 –