我有一个数据库和2个下拉菜单,使用javascript我从选定的下拉列表中获取值,然后将其发送到我的PHP,PHP然后从数据库中返回信息并将其显示在表格中,那里是两个表,因为有2个下降。这是我的javascript:
function choice1()
{
var x = document.getElementById("select1");
a = x.options[x.selectedIndex].value;
window.location.href = "index.php?a=" + a + "&b=" + b;
}
function choice2()
{
var y = document.getElementById("select2");
b = (y.options[y.selectedIndex].value);
window.location.href = "index.php?a=" + a + "&b=" + b;
}
在更改两个表之前,它会等待两个下降更改,我希望它做的是在更改表时立即更改表,但保持另一个表相同。我认为这意味着需要存储javascript变量a或b,以便在页面更改时可以调用它,以便PHP为第二个表提供相同的信息。
答案 0 :(得分:1)
您可以通过多种方式保留数据:
例如:
cookies:Javascript getCookie functions和 https://developer.mozilla.org/en-US/docs/Web/API/document.cookie
localStorage ,获取变量,隐藏输入。
我建议在这种情况下使用localStorage(html5),因为它非常安全且易于使用。
// getter function of 'persistent' variables.
function getPersistent(myVar) {
// ensure the localStorage object exists.
// return the variable we are looking for if it does or: undefined.
return (window.localStorage)? localStorage.getItem(myVar) : undefined;
}
// setter function of 'persistent' variables.
function setPersistent(myVar, value) {
// ensure the localStorage object exists.
if (window.localStorage) {
// set the variable.
localStorage.setItem(myVar, value);
}
}
// first run (page refresh) returns undefined.
// second run returns 4.
console.log(getPersistent('test'));
// we set the localStorage var 'test' to '4'.
// note that localStorage only saves strings.
// so you need to parse/convert the data if you want to modify.
console.log(setPersistent('test', '4'));
// returns localStorage var 'test' ==> 4.
console.log(getPersistent('test'));
答案 1 :(得分:0)
跨页面持久保存值的最简单方法是使用会话存储API。它与本地存储非常相似,但在当前窗口/会话关闭时会被拆除。
当然,您可以随时选择通过AJAX更新您的页面,而不是整个重新加载文档,