我有一个页面需要执行以下步骤:
第1步 - 通过POST
第2步 - 等待10秒
第3步 - 发送(也通过邮寄)通过邮件收到的以下信息:姓名,价值,数量和ID到通过邮寄收到的URL
第4步 - 重定向到收到帖子的网址,然后在屏幕上打印帖子。
为此我正在使用下面的代码,但是出了什么问题,因为重定向的URL中的打印应该带来帖子信息是空的,所以看起来因为任何原因信息不是发布正确。
有人可以告诉我我做错了什么吗?
代码:
HTML - 创建要POST的表单:
<form id="ret" name="return_url" method="post" action="<?php print_r($_POST['url']);?>">
<input type="hidden" name="name" value="<?php print_r($_POST['name']);?>" />
<input type="hidden" name="value" value="<?php print_r($_POST['value']);?>" />
<input type="hidden" name="num" value="<?php print_r ($_POST['num']);?>" />
<input type="hidden" name="ID" value="<?php print_r($_POST['ID']);?>" />
<input type="hidden" name="status" value="OK" />
</form>
将发布的网址内容添加到将在Javascript(PHP)中使用的var $retorno
中:
<?php
$retorno = $_POST['url'];
?>
启动计数器,提交表单并重定向(使用javascript):
<script language="javascript" type="text/javascript">
window.onload = function() {
function countdown() {
if (typeof countdown.counter == 'undefined') {
countdown.counter = 10; // initial count
}
if (countdown.counter > 0) {
document.getElementById('count').innerHTML = countdown.counter--;
setTimeout(countdown, 1000);
}
else {
document.getElementById("ret").submit();
location.href = '<?php echo $retorno?>';
}
}
countdown();
};
</script>
答案 0 :(得分:0)
您的代码存在很多问题。
<强> 1。您可以使用print_r
,echo
<form id="ret" name="return_url" method="post" action="<?php print_r($_POST['url']);?>">
在上面的print_r
行中,我们会以$_POST['url']
属性值无效的方式输出action
的内容。 查看生成页面的HTML源代码。
这应该改写为:
<form id="ret" name="return_url" method="post" action="<?php echo $_POST['url']; ?>">
你用所有的输入值犯了同样的错误。操作值特别重要,因为它必须是表单所在的地址。
<强> 2。您提交表单但您也重定向页面
表单submit()
与重定向location.href
只需删除location.href
行即可。如果您的HTML表单已正确配置,则JavaScript submit()
会将浏览器发送到action
属性中定义的页面。
最后,我建议您查看jQuery库,以便更轻松地编写JavaScript代码。