使用新附加的数据重新加载页面

时间:2013-05-28 16:53:26

标签: php jquery ajax dom persistence

在我正在处理的网站上,我有一个管理员面板,允许管理员将列表项添加到现有的无序列表中。这是使用带有jQuery .append()的AJAX表单完成的。列表项是URL,并使用PHP插入到数据库中。这部分有效。

我需要能够使用新的列表项重新加载页面,无论管理员是否已登录(例如,我希望更新的列表可供所有用户使用)。我知道除非我使用会话,cookie或某种本地存储/持久存储实用程序,否则我不能这样做。

如果我决定使用类似persistJS的东西,我需要保存什么才能以后重新加载?整个<ul>?整个文件?

如果我使用PHP会话,我该怎么做呢?

以下是一些示例列表和表单

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

<form id="addRec_form" action="classes/resources/addResource.php" method="post">
    <p><select name="categoryList" id="categoryList">
        <option value="0">Select a list to add to</option>
        <option value="1">List 1</option>
        <option value="2">List 2</option>
    </select></p>
    <p>Resource name: <input type="text" name="recName" id="recName" /></p>
    <p>Resource URL: <input type="text" name="recURL" id="recURL" /></p>
    <p><input type="submit" name="submitAddRec" value="Add resource" id="submitAddRec" /></p>
</form>

和AJAX:

$.ajax ({
    type: 'post',
    url: '/classes/resources/addResource.php',
    data: {
        recName: $('#recName').val(),
        recURL: $('#recURL').val()
    },
    success: function(data) {
        if (data === 'added') {
            function updateLists() {
                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);
            }
        }
        else
            $('span#resError').fadeIn(400).text('There was an error adding this resource');
    }
});

再次,PHP工作。 AJAX甚至可以工作,因为我可以看到新的列表项被添加到适当的列表中。当我刷新页面时,显然没有新的列表项。

无论我需要做什么来保存新的DOM状态,都需要在AJAX成功部分完成。

我只是不知道如何开始。有人可以请我提供一些我想要完成的示例代码吗?它无论是服务器还是客户端都无关紧要。

谢谢!

编辑:第一次成功是否可以进行额外的AJAX调用?在第一次AJAX请求成功时,将进行一个新的AJAX调用,它将使用PHP添加新的列表项,以便它在页面重新加载时出现?

0 个答案:

没有答案