当值被POST时,jQuery setTimeout刷新

时间:2015-06-12 10:57:32

标签: javascript php jquery html

之前我通过GETonChange选择下拉列表中发送了值

<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

1 个答案:

答案 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);