2011-12-02 124 views
14
<?php 
    /* ... SQL EXECUTION TO UPDATE DB ... */ 
?> 

<form method = "post" 
     action = "<?=$_SERVER['php_self']?>" 
     onSubmit= "window.close();"> 
    ... 
    <input type="submit" value="submit" /> 
    <input type="reset" value="reset" /> 
</form> 

我想提交表單後關閉頁面。運行上面的代碼後,點擊提交按鈕後頁面關閉,但SQL不執行。如何在提交表單後關閉瀏覽器選項卡?

任何人都可以幫助我嗎?提前致謝!

回答

37
<?php  
    /* ... SQL EXECUTION TO UPDATE DB ... */ 

    echo "<script>window.close();</script>"; 
?> 

並從形式onsubmit事件

+2

它不工作 – Dimple

+0

也許它更改爲'回聲「<腳本類型=」文本/ javascript「> window.close();' – HighTechProgramming15

+0

這**做了**工作形式,但它不是因爲我使用的是'header('Location:text.php');'function before i' m試圖關閉它,所以如果你正在使用'header',而是在你正在重定向到的PHP頁面中的'window.close()'腳本......(在我的例子中是'text.php')。 。希望這會有所幫助。 –

0

這是因爲事件onsubmit在表單提交之前觸發。

刪除您的onSubmit,並在處理完請求後在PHP腳本中輸出該JavaScript。您現在正在關閉窗口,並取消對服務器的請求。

1

window.close()如果使用同一個頁面的動作,則不能使用onSubmit="window.close();"作爲接收到響應前,將關閉該窗口。你必須dinamycally輸出一個JS代碼片段,在SQL數據處理後關閉窗口。然而,使用另一個頁面作爲表單動作會更優雅。

7

form標記中刪除onsubmit。更改此:

<input type="submit" value="submit" /> 

要:

<input type="submit" value="submit" name='btnSub' /> 

而且這樣寫:

if(isset($_POST['btnSub'])) 
    echo "<script>window.close();</script>"; 
1

嘗試onsubmit="submit(); window.close()"

0

這出色工作對我來說,:

$query = "INSERT INTO `table` (...or put your preferred sql stuff)" 
$result = mysqli_query($connect, $query); 
if($result){ 
    // If everything runs fine with your sql query you will see a message and then the window 
    //closes 
     echo '<script language="javascript">'; 
     echo 'alert("Successful!")'; 
     echo '</script>'; 
     echo "<script>window.close();</script>"; 
     } 
else { 
     echo '<script language="javascript">'; 
     echo 'alert("Problem with database or something!")'; 
     echo '</script>';   
     } 
+0

@CecileOlse ñ感謝編輯,我沒有注意到錯字... – Macarrao

+0

這仍然不能解決問題伊莫。 我正在嘗試爲大型活動構建一個小型註冊系統。通過掃描QR碼(「門票」)進行註冊,我試圖儘量減少點擊次數。警報仍然需要我的註冊團隊進行額外的交互(確認/確認警報)! – MahNas92

相關問題