当值被POST时,jQuery setTimeout刷新

Previously i was sending values through GET from onChange of select dropdown

<select name="addSel" id="addSel" onChange="addFunc(this.value);">
    <option></option> ....  <option></option>
</select>

and in my javascript

function addFunc(val)
{
   document.location = 'index.php?action=live&sub=add';
}

I could possibly refresh my HTML table with the condition sub=add and table contents dependant on sub=add

function refTbl()
{
    var pathtopage = window.location.href;
    $('#TableId').load(pathtopage + ' #TableId', function(){
        setTimeout(refTbl, 10000);
    });
}

Then i wrapped my select inside <form> to send values through POST

<form id="selForm" name="selForm" action="" method="POST">
  <select name="addSel" id="addSel" onchange="this.form.submit()">
        <option></option> ....  <option></option>
  </select>
</form>

My url remains index.php?action=live and cant able to refresh my table based on posted values

function refTbl()
{
    var pathtopage = 'index.php?action=live';
    $('#TableId').load(pathtopage + ' #TableId', function(){
         setTimeout(refTbl, 10000);
    });
}

This doesn't refresh my table based on values from POST through select onChange. how it is possible to refresh my HTML table using setTimeout based on POST values.

p.s - I dont want to use AJAX

doumi9661
doumi9661 “p.s-我不想使用AJAX”-那你为什么要使用load()?这是一个Ajax函数。
大约 5 年之前 回复
dpq755012465
dpq755012465 其中是onchange中的函数名称
大约 5 年之前 回复

1个回答



jQuery .load( )第二个可选参数是 data </ code>。 使用此发送表单数据。</ p>

您必须序列化 您的表单数据。</ p>

  function refTbl(e)
{
//阻止表单重新加载页面
e.preventDefault();
var pathtopage ='index。 php?action = live';
var data = $(this).serializeArray();
$('#TableId')。load(pathtopage +'#TableId',data,function(){
setTimeout( refTbl,10000);
});
}
</ code> </ pre>

并在表单提交上调用</ p>

   $(“#selForm”)。submit(refTbl); 
</ code> </ pre>
</ div>

展开原文

原文

jQuery .load() second optional parameter is data. Send your form data with this.

You have to serialize your form data.

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);
    });
}

And call it on form submit

$("#selForm").submit(refTbl);

drsdvwsvo78320812
drsdvwsvo78320812 是的,它创建了jQuery .load()接受的查询字符串。 根据文档:数据必须是与请求一起发送到服务器的普通对象或字符串。
大约 5 年之前 回复
dongtiannan0367
dongtiannan0367 谢谢你的想法。 $(本).serializeArray(); 对我来说很好。 我相信serialize()只是创建查询字符串。 和serializeArray()实际上创建一个数组。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问