2013-10-17 99 views
0

我有需要執行以下步驟的頁面:後表單,等待10秒鐘,然後重定向到

第1步 - 通過POST

步驟(2)接收URL地址,名稱,價值,NUM和ID - 等待10秒鐘

步驟3 - 發送(也可以通過交)經由交接收以下信息:名稱,值Num和ID,通過柱接收到的URL

步驟4 - 重定向到該接收到的URL該帖子並在屏幕上打印帖子。

爲此,我使用下面的代碼,但任何事情都會出錯,因爲重定向的URL中的打印應該會使發佈信息變空,所以看起來像是出於任何原因信息不是正確發佈。

有人能告訴我我做錯了什麼嗎?

代碼:

HTML - 創建表來發表:

<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> 

張貼的URL內容添加到VAR $retorno將在Javascript(PHP)使用:

<?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

你的代碼有很多錯誤。

1.您使用print_r,你應該在某種程度上,這將是作爲一個action屬性值無效使用echo

<form id="ret" name="return_url" method="post" action="<?php print_r($_POST['url']);?>"> 

在線以上print_r將輸出$_POST['url']內容。 查看生成的頁面的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編碼更容易。

相關問題