2010-05-13 79 views
1

基本上我想要一個確認框,當他們點擊按鈕詢問他們是否確定要重新啓動時彈出,如果是的話,那麼它會破壞會話並將它們到第一頁。繼承人我得到了什麼?PHP/Javascript的:重新啓動表單按鈕不工作,代碼隱藏

echo "<form id=\"form\" name=\"form\" method=\"post\" action=\"nextpage.php\">\n"; 
echo " <input type=\"button\" name='restart' value='Restart' id='restart' 
     onclick='restartForm()' />"; 

和腳本...

<script type=\"text/javascript\"> 
    <!-- 
    function restartForm() { 
    var answer = confirm('Are you sure you want to start over?'); 
    if (answer) { 
     form.action=\"firstpage.php\"; 
     session_destroy(); 
     form.submit(); 
    } else 
     alert ('Restart Cancelled'); 
    } 
    // -- 
</script>"; 

編輯:請注意,按下該按鈕會彈出確認框,但如果你點擊還好沒什麼有時會發生。有時如果你點擊取消,它仍然提交表單(原始動作)

回答

0

除非你的Javascript中的session_destroy()方法實際上向PHP腳本發送請求或其他東西,它看起來像你試圖把PHP代碼放到你的javascript中,這將無法正常工作。

您應該嘗試將它們重定向到類似firstpage.php?reset=1的東西,並在PHP腳本中,您可以檢查重置標誌,然後調用session_destroy()

+0

是的,這絕對是我的問題,謝謝(= – 2010-05-13 18:41:33

0

您應該使用

onclick='restartForm(); return false;' 

防止形式被髮送。

此外,session_destroy()不是JS AFAIK ...

編輯:你也應該記住,會話是服務器端,而不是客戶端,所以如果你想操縱他們,你不能做到這一點的JS 。你唯一能做的就是調用一個PHP(例如通過AJAX)來處理會話。