之前我通过GET
从onChange
选择下拉列表中发送了值
<select name="addSel" id="addSel" onChange="addFunc(this.value);">
<option></option> .... <option></option>
</select>
并在我的javascript中
function addFunc(val)
{
document.location = 'index.php?action=live&sub=add';
}
我可以刷新我的HTML表格,条件为sub=add
,表格内容依赖于sub=add
function refTbl()
{
var pathtopage = window.location.href;
$('#TableId').load(pathtopage + ' #TableId', function(){
setTimeout(refTbl, 10000);
});
}
然后我将我的选择包裹在<form>
内以通过POST
<form id="selForm" name="selForm" action="" method="POST">
<select name="addSel" id="addSel" onchange="this.form.submit()">
<option></option> .... <option></option>
</select>
</form>
我的网址仍为index.php?action=live
,无法根据发布的值刷新我的表格
function refTbl()
{
var pathtopage = 'index.php?action=live';
$('#TableId').load(pathtopage + ' #TableId', function(){
setTimeout(refTbl, 10000);
});
}
这不会根据POST到select onChange的值刷新我的表。 如何使用基于POST值的setTimeout刷新我的HTML表格。
p.s - 我不想使用AJAX
答案 0 :(得分:1)
jQuery .load()第二个可选参数是data
。发送您的表单数据。
您必须serialize表单数据。
function refTbl(e)
{
// Prevent form reloading page
e.preventDefault();
var pathtopage = 'index.php?action=live';
var data = $(this).serializeArray();
$('#TableId').load(pathtopage + ' #TableId', data, function(){
setTimeout(refTbl, 10000);
});
}
并在表单提交
上调用它$("#selForm").submit(refTbl);