0

jQuery を使用して、AJAX 呼び出しのonに新しい要素を.append()追加しました。問題は、ページを更新するたびに、新しく追加されたリスト項目が消えることです。liulsuccess

これは元のページの更新に関係しており、いくつかのオプションは 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 などを追加すると、ページを更新しても新しいリスト アイテムが残ります。

4

1 に答える 1

1

ajax / javascript を使用してページを動的に構築する場合、ページがリロードされたときにまったく同じ方法で構築できるように、現在の状態を保存する必要があります。

ページを構築するために必要な情報がクライアント側に保存されている場合は、セッション (サーバー側) や Cookie / localStorage など、いくつかの方法があります。

html5 を使用しておらず、ajax を使用してページを作成している場合は、セッションを使用してサーバー側ですべてを行うのがおそらく最も簡単なオプションです。ajaxリクエストが行われるたびに、ページの現在/更新された状態を保存するだけです。

追加の考慮事項は、情報が保持される期間です。標準のphpセッションメカニズムを使用すると、セッション/状態がかなり速く失われます(デフォルト設定では、リロード/リフレッシュなしで約1時間).

于 2013-05-28T00:55:15.753 に答える