2013-05-28 91 views
0

我使用jQuery的.append()在的AJAX調用中將新的li元素添加到ul。問題是,無論何時刷新頁面,新添加的列表項都消失。新添加的元素在重新加載頁面後消失(jQuery)

我讀過這與刷新原始頁面有關,並且一些選項是使用cookie(PHP或jQuery)。我也看到了一些關於localStorage的內容。如果有問題,我不使用HTML5。

什麼是最好的方式去做這件事?如果我使用PHP,我可以將腳本嵌入到jQuery中嗎?有沒有更好的方法來解決這個問題?

感謝

編輯:包括代碼

AJAX

$.ajax ({ 
type: 'post', 
url: '/classes/resources/addResource.php', 
data: { 
    recName: $('#recName').val(), 
    recURL: $('#recURL').val() 
}, 
success: function(data) { 
    if (data === 'added') { 
     var h3ID = $('#categoryList option:selected').val(); 
     var title = $('#recName').val(); 
     var url = $('#recURL').val(); 
     var newListItem = '<li><a href=\"' + url + '\">' + title + '</a></li>'; 
     $('ul#' + h3ID).append(newListItem); 
     $('span#resError').fadeIn(400).text('Resource added successfully. Add another?'); 
    } 
    else 
     $('span#resError').fadeIn(400).text('There was an error adding this resource'); 
    } 
}); 

HTML

<h3 class="category" id="1"> 
    Category 1 
</h3> 
<ul id="1"> 
    <li>List item 1</li> 
    <li>List item 2</li> 
    <li>List item 3</li> 
    <li>List item 4</li> 
</ul> 

當我添加列表項目5等,我希望這些新的列表項目保持刷新頁面。

回答

1

如果您使用ajax/javascript動態構建頁面,則需要存儲當前狀態,以便在頁面重新加載時以完全相同的方式進行構建。

如果您需要構建頁面的信息存儲在客戶端,有幾種方法可以用於會話(服務器端)或cookie/localStorage。

如果您不使用html5,但您使用ajax來構建頁面,那麼使用會話和做所有服務器端可能是最簡單的選擇。每次發出ajax請求時,只保存頁面的當前/更新狀態。

另一個考慮因素是信息需要持續多久。如果你使用標準的PHP會話機制,你的會話/狀態會很快丟失(大約一個小時沒有重新加載/刷新,我認爲使用默認設置)。

+0

謝謝。大部分頁面都是由我編寫的HTML呈現的。我有幾個無序列表,我希望新添加的列表項無限期地保留下來(這些列表是針對一堆URL的)。 – mishmomo

+0

@NojoRu很難說沒有看到任何代碼或示例,但似乎你需要添加新添加的列表項(所有項目...)到數據庫並從中建立頁面。 – jeroen

+0

Jeroen,我添加了一些代碼 – mishmomo

相關問題