在我的应用程序中,我使用JQuery数据表来显示我的产品详细信息。我有很多购买过滤器(价格,产品类型等),最后在数据表用户有链接查看所选的产品详细信息。表格示意图如下;
在表格填充时,我将过滤器参数附加到锚元素的href。代码段如下;
"mRender" : function(page, type, full) {
return '<a href="' + CXT_PATH
+ '/page?filters='
+ getFilters()
+ '">' + "LINK" + '</a>'
}
}
这里getFilters()
有时会返回100个过滤器,因此创建的网址太长。我认为,当默认锚链接点击时,它们作为GET请求传递。因此可能存在大小限制。
因此,当我们选择更多过滤器时,我不希望我的用户得到奇怪的结果。
我打算如下所示:
每当用户点击链接时,它将在javascript中调用一个方法并执行表单发布(因为需要重新加载页面)。请指导我,如何在javascript或jquery或其他任何更好的方法实现相同的目标。
我正在使用Spring MVC + JSP + Javascript&amp; JQuery的
答案 0 :(得分:1)
这是一个开始:
使用XMLHttpRequest对象:
getXHR函数的来源:XMLHttpRequest Browser Support
function getXHR() {
if (window.XMLHttpRequest) {
// Chrome, Firefox, IE7+, Opera, Safari
return new XMLHttpRequest();
}
// IE6
try {
// The latest stable version. It has the best security, performance,
// reliability, and W3C conformance. Ships with Vista, and available
// with other OS's via downloads and updates.
return new ActiveXObject('MSXML2.XMLHTTP.6.0');
} catch (e) {
try {
// The fallback.
return new ActiveXObject('MSXML2.XMLHTTP.3.0');
} catch (e) {
alert('This browser is not AJAX enabled.');
return null;
}
}
}
var xhr = getXHR();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xhr.send("your-querystring");
答案 1 :(得分:0)
您可以尝试以下方法,在表格中创建表单,单击过滤器链接时将过滤器值分配给表单中的隐藏元素并提交表单。
<强> HML 强>
<form action="<server_path>" method="post" id="filterform">
<input type="hidden" name="filters" id="filters" />
<input type="submit/>
</form>
Javascript / Jquery
"mRender" : function(page, type, full) {
return '<a onclick="' submitFilter() '">' + "LINK" + '</a>'
}
submitFilter: function (CXT_PATH){
$( "#filters" ).val(getFilters());
$( "#filterform" ).submit();
}