嗨我有一个场景,我正在生成动态表以及动态按钮,当用户点击该按钮时,它必须获取该行值,并通过将此值作为参数生成另一个动态表。立即我尝试生成一个动态表,并使用按钮并传递一个参数到这个函数我坚持如何传递/接受一个参数到该函数,以便通过使用ajax调用它可以生成另一个动态表。
$.ajax({
type: 'GET',
url: xxxx.xxxxx.xxxxx,
data: "Id=" + clO + Name_=" + cl+ "",
success: function (resp) {
var Location = resp;
var tr;
for (var i = 0; i < Location.length; i++) {
tr = tr + "<tr>
tr = tr + "<td style='height:20px' align='right'>" + Location[i].Amount + "</td>";
tr = tr + "<td style='height:20px' align='right'>" + Location[i].Name + "</td>";
tr = tr + '<td><input type="button" class="nav_button" onclick="test(\'' + Location[i].Amount + '\',\'' + Location[i].Name + '\')"></td>';
tr = tr + "</tr>";
};
document.getElementById('d').style.display = "block";
document.getElementById('Wise').innerHTML = "<table id='rt'>" + "<thead ><tr><th style='height:20px'>Amount</th>" + "<th style='height:20px'>Name</th>""</tr></thead>"
+ tr + "<tr><td align='left' style='height:20px'><b>Total:"+ TotBills +"</b></td><td style='height:20px' align='right'><b></b></td></tr>" +
"</table>";
document.getElementById('Wise').childNodes[0].nodeValue = null;
},
error: function (e) {
window.plugins.toast.showLongBottom("error");
}
function test(value,val1,val2) {
navigator.notification.alert(value + ";" + val1 + ";" + val2);
// here i have to pass the another ajax by basing on the the onclick
}
所以在函数中我必须传递参数并且必须在新页面中显示它们是如何实现的?
答案 0 :(得分:1)
要将数据从页面传递到另一个页面,最好的选择是localStorage和SessionStorage;
SessionStorage
- 类似于关闭浏览器时过期的Cookie。它与localStorage具有相同的结构,但只要删除关闭,就无法改变其持久时间。
LocalStorage
- 这类似于cookie,但它永远不会过期,所以当AppCache中有该域的记录时,该变量将存在(除非用户创建一个例程来删除它)。 / p>
这两个属性都是由HTML5添加的。以上项目称为网络存储。但是通过HTML5还有其他形式的本地存储,例如WebSQL数据库,索引数据库(IndexDB)以及传统文件(文件访问)。
例如:
// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");
这是你的意思吗?
答案 1 :(得分:0)
目前还不清楚你追求的是什么,但我想我知道你在哪里。从您包含的代码中,您似乎想要这样的东西:
// This will take the user to a separate page, passing your parameters
function test(val1,val2) {
window.location.href("/UrlGoesHere?Amount=" + val1 + "&Name=" + val2);
}
根据您所说的另一种选择是重绘表格。你可以这样做:
function test(val1,val2) {
$.ajax({
type: 'GET',
url: "/UrlGoesHere",
data: "Amount=" + val1 + "&Name=" + val2,
success: function (resp) {
// redraw table here
}
});
}