2011-12-02 25 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> 

Formu teslim ettikten sonra sayfayı kapatmak istiyorum. Yukarıdaki kodu çalıştırdıktan sonra, gönder düğmesine tıklandıktan sonra sayfa kapatılır, ancak SQL yürütmez.Form Gönderdikten Sonra Tarayıcı Sekmesi nasıl kapatılır?

Bana yardım eden var mı? Şimdiden teşekkürler!

cevap

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

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

ve İşlem olarak aynı sayfayı kullanabilmek için sahip varsa yanıt alınmadan önce pencereyi kapanacak gibi, sen onSubmit="window.close();" kullanamaz formu onsubmit olay

+2

belki – Dimple

+0

çalıştı 'echo "' – HighTechProgramming15

+0

Bu ** bana form verdi mi, ama ben 'header (' Konum: text.php '); Bunu kapatmaya çalışıyorum, bu yüzden eğer 'header' kullanmakta olduğunuz bir PHP-window.close() 'betiğine yönlendiriyorsanız ... (' text.php' örneğimde) .. Umarım bu yardımcı olur –

0

Bu nedenle, form gönderilmeden önce olay onsubmit tetiklenir.

onSubmit numaranızı kaldırın ve bu yordamı işledikten sonra PHP betiğinizdeki JavaScript'i verin. Pencereyi şimdi kapatıyorsunuz ve sunucunuza talebi iptal ediyorsunuz.

1

den window.close() çıkarın. SQL verileri işlendikten sonra pencereyi kapatan bir JS snippet'i dinamycally olarak çıkarmalısınız. Bununla birlikte, form eylemi olarak başka bir sayfa kullanmak çok daha şık olurdu.

7

form etiketten onsubmit kaldır.

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

için:

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

Ve bunu yazmak: Bu değiştirme

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

eskisi gibi çalışmıyor onsubmit="submit(); window.close()"

0
Bu benim için zekice çalıştı

:: Yani başka bir sayfaya yönlendirebilirsiniz

$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 n Düzenleme için teşekkürler, yazım hatası fark etmedim ... – Macarrao

+0

Bu hala problemi çözmüyor. Daha büyük etkinlikler için küçük bir kayıt sistemi oluşturmaya çalışıyorum. Kayıt, QR kodlarını ("bilet") tarayarak olur ve tıklama miktarlarını en aza indirmeye çalışıyorum. Uyarı, kayıt ekibimin bu ekstra etkileşimi yapmasını gerektirecek (uyarıyı onaylayın/tamamlayın)! – MahNas92

İlgili konular