0

我有一个页面,用户可以在数据库中搜索(全部在 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();
}

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

有更好的方法吗?

编辑:我得到了输入部分的答案。该页面现在获得了两个输入。但是:它仍然会重新加载一个仅包含表单(以及 html、正文等)的空白页面,然后它会重定向。知道如何直接拥有它吗?

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

4

1 回答 1

2

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

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

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

答:如果您使用的是 firefox,并且在 < DOCTYPE > 和 < HTML > 标签之前回显数据,则会自动刷新。如果要调试,请在 <BODY> 中回显数据

A2:可能会发生奇怪的重新加载,因为您正在 < BODY > 之外或可能在 < HEAD > 内部执行该表单的 document.write ... 如果是这种情况,为什么不这样做:

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/ (警报而不是提交)

于 2013-05-27T13:45:18.357 回答