6

我是 jQuery 的新手。有没有办法booked通过 jQuery 检索另一个页面中的值?

$(document).ready(function() {
    $(".active").click(function() {
        var booked=$(this).val();
        confirm(booked);
    });
});
4

4 回答 4

7

如果纯粹在客户端,请使用cookie或 HTML5 。localStorage

localStorage.setItem('bookedStatus' + customerId, true);

如果数据已经提交到服务器,则使用ajax 。

$.get('/site/getBookingStatus?customerId=' + customerId, function(data){
   alert(data);
});
于 2012-09-01T09:36:26.373 回答
3

或者,如果这是一个简单的字符串,您可以在导航到另一个页面时附加页面的 URL。如果这是受保护的数据,您可以加密字符串并附加。

您的网址将是:example.com/nextPage?x=booked

在下一页中,您可以通过按给定的方式对其进行解码来获取字符串:

var encodedData = window.location.href.split('=')[1];
var bookedValue = decodeURI(encodedData);

如果您已加密脚本,则必须在下一页中解密。

于 2016-02-17T09:37:12.837 回答
2

localStorage 在移动浏览器上效果不佳。我已经放弃尝试让 localStorage 在 iPhone/safari 上工作。如果您没有传递太多数据,那么一个简单的解决方案是使用通常的?param=语法将数据附加到您要导航到的 url:

// set your data in the source page 
function set_url_data(go_to_url, data) {
  new_url = go_to_url + '?data=' + data;
  window.location.href = new_url;
}

// parse your data in the destination page 
function grab_data_from_url() {
  url = window.location.href;
  data = url.split('data=').pop();
  return(data)
}
于 2017-11-21T06:53:19.530 回答
0

如果它在同一个域中,您可以尝试使用 cookie。

您需要使用 jQuery cookie插件(解决跨浏览器问题)。

你应该尝试做这样的事情:

  1. 在第 1 页生成变量。
  2. 将此变量保存为会话 cookie。
  3. 在第 2 页上,您现在可以访问会话 cookie。
  4. 如果用户直接访问第 2 页而不访问第 1 页,则您应该设置默认值。
  5. 完毕!
于 2012-09-01T09:36:40.920 回答