簡體   English   中英

AJAX發布后更新視圖而無需重新加載

[英]Updating view after AJAX post without reload

我試圖在AJAX發布后重新加載div的內容,但我真的不知道如何執行此操作。 我知道我必須用Jquery更新innerhtml,但是我被困在這里。

/* ----------------------------------------------
    Like/Dislike
-----------------------------------------------*/

$('.like').on('click', function(event) {
    event.preventDefault();

    postId = event.target.dataset['postid'];

    console.log(postId)
    console.log(token) 
    console.log(urlLike)

    $.ajax({
        method: 'POST',
        url: urlLike,
        data: {postId: postId, _token: token},
    })
    .done(function(msg) {
        console.log(msg); // 
    });

這是我目前的html,通過正常的重載,類似計數得到更新,並且如果用戶喜歡該帖子,則使用簡單的if語句獲取具有活動狀態的類。 在AJAX調用之后,如何更新此span類?

<div class="wis-numbers">
   <?php $likes = $post->likes->count() ?>
       <span style="cursor: pointer;" class="like @if( $post->isLiked ) active @endif" data-postid="{{ $post->id }}" data-original-title="{{ $likes }} vind ik leuks" data-toggle="tooltip" data-placement="bottom"><i class="zmdi zmdi-thumb-up" data-postid="{{ $post->id }}"></i> {{ $likes }}</span>
</div>

您只需要將其放在回調中

$('.like').on('click', function(event) {
    event.preventDefault();
    var postId = event.target.dataset['postid'],
        $counter = $('.wis-numbers span');
    $.ajax({
        method: 'POST',
        url: urlLike,
        data: {postId: postId, _token: token},
        success: function(response) {
                $counter.html(response); // if this is an object change to the value you want
        }
    });
});

您也可以使用Vue.js。此庫無需重新加載頁面即可更新視圖。

您要做的就是-從Ajax發送/獲取所需的數據,並在ajax響應更新vue數據源之后,然后由vue.js負責更新整個頁面(無需重新加載),無論使用哪個DOM元素該特定數據源。 希望這對您有所幫助。 謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM