Javascript - 重定向到包含POST数据的页面

时间:2013-05-27 13:41:14

标签: javascript ajax post redirect

我有一个页面,用户可以在数据库中搜索(全部使用AJAX),然后在页面上选择不同类型的数据。当他选择他们时,我需要的是将用户重定向到另一个页面(尽管仍在我的网站上),使用POST数据。 用户将到达的新页面需要POST数据,用户需要转到新页面。

我已经读过,我可以在加载页面之前创建一个表单,并在我想重定向时简单地提交它,但问题是我没有将包含在前面的数据。

我尝试过这样的事情:

document.write('<form id="reviseCombi" method="post" action="otherPage.php"><input name="input1" type="hidden" value="ok" /><input type="input2" type="hidden" value="'+ mots +'" /></form>');
f=document.getElementById('reviseCombi');
if(f){
    f.submit();
}

但是当我使用Tamper Data检查时,第二个输入没有到达新页面。它首先重新加载实际页面,这也很奇怪。

有更好的方法吗?

编辑:我得到了输入部分的答案。该页面现在获得两个输入。但是:它仍然重新加载只包含表单(和html,正文等)的空白页然后重定向。知道我怎么能直接拿到它吗?

对不起,如果不是很清楚,很难解释。我会回答任何评论,以便更好地解释它。 非常感谢。

1 个答案:

答案 0 :(得分:2)

问:“但第二个输入没有到达新页面”

答:你的第二个输入没有名字! (类型 =“input2”使其名称 =“input2”)

问:“它首先重新加载实际页面,这也很奇怪。”

答:如果您使用的是Firefox,并且在&lt;之前回显数据DOCTYPE&gt;和&lt; HTML&gt;标签,你得到一个自动刷新。如果你想调试,回显&lt; BODY&gt;

A2:奇怪的重新加载可能是因为你在&lt;&lt;&lt;&lt;身体&gt;或者可能在&lt; HEAD&gt; ......如果那就是为什么不这样做:

HTML

<div id="myformcontainer"></div>

JS

function CreateAFormInsideMyDivAndSubmitIt(mots)
{
    var mydiv = document.getElementById('myformcontainer').innerHTML = '<form id="reviseCombi" method="post" action="otherPage.php"><input name="input1" type="hidden" value="ok" /><input name="input2" type="hidden" value="'+ mots +'" /></form>';
    f=document.getElementById('reviseCombi');
    if(f){
    f.submit();
    }
}

jsfiddle:http://jsfiddle.net/MDx8H/1/(提醒而不是提交)