0

有人建议我尝试不用代码来解释我的问题,所以就这样吧。我有一个网页,其中列出了一系列带有项目名称的链接,如jsfiddle 所示。我接下来要做的是在用户单击项目链接后显示第二个网页。第二个网页需要像第二个页面 jsfiddle一样发出第二个 ajax 请求获取新信息以显示该特定项目的项目摘要、引文和名称。杀死我的部分是第二页的 ajax 请求当前在 url 中有一个数字 504216b6e4b04b508bfd333b 这意味着它只会将该项目用于第二页来显示摘要、引用和名称。我需要那个 ajax 请求来获取任何 id 号的变量。然而,为了使问题更加复杂,ID 号来自用户单击第一页上的链接。所以我的问题是在单击链接后获取 id 的值并将其放入下一页的 ajax 请求中。我已经完成了页面将显示的所有工作,但我无法从一个文件到下一个文件中获取值。任何帮助表示赞赏,谢谢。

不放一些代码就不会让我保存,所以这只是最基本的,

// The ajax request is in another file but it works good
promise.done(function (json) {
    // Make some links

    // Which link was clicked? I need to see some id please
    $('#sbItems a').on('click', function (e) {  
        e.preventDefault();                      

        // Do stuff to find the id for the link the user clicked

        // Assign the id to a variable that I can use in the next ajax request
        // that is called in a seperate file
        testId = json.items[itemId].id;



    }); // END Click event  

}).fail(function() {
    alert("Ajax call failed!");
});

second file has,

// Need to somehow, someway get the testId variable that holds the id
// into this file

var url = 'https://www.sciencebase.gov/catalog/item/ + THE TESTID + ?format=
jsonp&fields=relationships,title,body,contacts';    
$.ajax({
    type: 'GET',
    url: url,
    jsonpCallback: 'getSBJSON',
    contentType: "application/json",
    dataType: 'jsonp',
    complete: onComplete,
    success: function(json) {  
        // Display some stuff based off this url
    }
});
4

1 回答 1

0

如果您尝试在单击将您带到第二页的链接时从第一页获取一个数字并进入第二页,以便您可以在第二页 ajax 调用中使用它,那么有几个选项:

  1. 在请求第二页作为搜索参数时,将值附加到 URL 上,如下所示:http ://www.sample.com/mypage?id=504216b6e4b04b508bfd333b 。在第二页中,从 URL 中解析出该 id 值并将其用于您的 ajax 调用。这是这三个选项中最安全的,因为即使用户打开多个窗口并点击您网站中的不同页面,它也能正常工作。

  2. 单击第一页中的链接时,将 id 值存储为 cookie。在第二个页面中,从 cookie 中检索 id。

  3. 与选项 2 相同,但将值存储在本地存储中。

于 2013-02-24T02:41:34.080 回答