2017-04-10 75 views
0

我有一個javascript的ajax塊,它做了一些操作,然後更改我的頁面中的文本框。在Ajax成功的變化沒有刷新頁面加載

$.ajax({ 
    type: "POST", 
    url: "/post_to_page/", 
    data: JSON.stringify({'titleid': parseInt(count_id)}), 
    cache: false, 
    success: function(data){ 
    var content_id = "count_" + count_id; 
    var votes = $(content_id).val(); 
    $(upvotes_id).html(votes); 
    //window.location.reload(); 
    } 
    }); 

僅在刷新頁面後才反映內容值。我嘗試將緩存參數設置爲false,並在文檔準備就緒時在ajaxSetup中進行相同的設置。這些變化仍未得到體現。請幫忙。

+0

請提供所有相關代碼。什麼是變量upvotes_id? 此外,是不是「count_」ids而不是標籤名稱? – Sorikairo

+0

您正在以錯誤的方式投票。票值應該是$(「#content_id」)。val();或$(「。content_id」)。val(); 我認爲這個「upvotes_id」應該是ID ot類,所以請嘗試使用$(「#upvotes_id」)。html(votes);如果類或「$(」。upvotes_id「)。html(票)」如果類。 – umishra

回答

0

添加散列以獲得值,如 var votes = $('#'+ content_id).val();

0

我想你忘了ID

$.ajax({ 
type: "POST", 
url: "/post_to_page/", 
data: JSON.stringify({'titleid': parseInt(count_id)}), 
cache: false, 
success: function(data){ 
var content_id = "count_" + count_id; 
var votes = $('#'+content_id).val(); // add hash for id or . for class 
$(upvotes_id).html(votes); 
//window.location.reload(); 
} 
}); 
0

我假設upvotes_id或者是id或class前加 「#」。在「content_id」的情況下使用$(「#upvotes_id」)。html(票)或$(「。upvotes_id」)。html(票)。

+0

是的你是對的。這是我的一個小錯誤。但是在更正之後,更改僅在頁面重新加載後纔得到反映。 –

+0

你可以添加更新後的腳本嗎? –

1

看起來你的返回變量'data'沒有被成功函數引用。正如其他地方指出的那樣,也缺少一個id或class引用。試試這個(或任何其他相關變量):

var content_id = "#count_" + data.count_id; 
0

我可以看到你的代碼的幾個問題喜歡 - 沒有「#」爲參照的元素。

更正:

$.ajax({ 
    type: "POST", 
    url: "/post_to_page/", 
    data: JSON.stringify({'titleid': parseInt(count_id)}), 
    cache: false, 
    success: function(data){ 
     **var content_id = "#count_" + count_id;** 
     var votes = $(content_id).val(); 
     $(upvotes_id).html(votes); 
     //window.location.reload(); 
    } 
}); 

你也沒有提到你是如何得到upvotes_id。那裏也使用#。您沒有使用成功方法返回的響應。它的目的是?