Ajax显示数据以便以后在代码中使用它

时间:2017-06-20 00:13:30

标签: jquery ajax

之前我很抱歉,如果标题不是最正确我不知道如何把它,我想要实现,

我有一个网站,我可以在页面加载时使用ajax获取属于该用户的数据(books,ect):

$.post('scripts/myArt_scripts.php', {dataSession: "set"}, function(response) {
    var response = jQuery.parseJSON(response);
    var responseLength = response.length;
        alert(responseLength);
});

我想要做的是在显示数据的时候。例如,将用户作为x书籍,当他点击书籍x名称时,它将打开该书的其余数据。

我的问题是如何将本书的名称与我在加载时从ajax获得的唯一idc相关联。

我在print上创建了一个唯一的id,或者通过innerhtml,但不会被其他用户编辑。

以这种方式获取数据:

response[0].title
response[0].description
....
response[1].title
......

注意:标题将位于leff上的“subnavar”(例如:div id:navbar),img描述upvotes ect将位于右侧(例如:div class:content )

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到。

一种方法是将所有数据放入页面的HTML中,但隐藏除标题之外的所有内容。当他们点击标题时,您只需显示包含其余数据的DIV。

$.post('scripts/myArt_scripts.php', {dataSession: "set"}, function(response) {
    alert(response.length);
    $.each(response, function(book) {
        var bookdiv = $("<div class='book'>");
        bookdiv.append($("<div class='title'>").text(book.title))
            .append($("<div class='description'>").text(book.description).hide());
        $("#results").append(bookdiv);
    });
}, "json");

$("#results").on("click", ".book", function() {
    $(this).next(".title").toggle();
});

另一种方法是将数组放在Javascript全局变量中。标题可以包含带有数组索引的data-XXX属性,当您单击它时,它会查找数组中的对象,将相应的元素添加到DOM并显示它。

答案 1 :(得分:0)

作为Barmar的回答,我认为他提到了最好的方法来做到这一点

另一种愚蠢的方式:)是第一个ajax只是当用户点击制作第二个ajax获取有关点击的bookid的更多详细信息时可以发送用户ID

 $("#bookDiv").onclick(function(){

 $.post('scripts/myArt_scripts.php', {bookid: $(this).attr("data-
 bookid"),userId:userid}, function(response) {
   //Show book details returned from the server 
   })
})