2016-12-19 3 views
1

Ich möchte meine Anwendung erhalten, wenn ein Element gelöscht wird Pop-up eine Nachricht und Weiterleitung an eine andere Seite. Ich habe Javascipt für die Popup und PHP-Header für die Umleitung verwendet. Jetzt geht es nur noch um das Popup oder die Umleitung, je nachdem welche zuerst aufgelistet ist. Wie repariere ich das?Redirect und Popup, wenn sql fertig ist

<?php 
session_start(); 
require_once('../../includes/mysql_config.php'); 

$id = isset($_SESSION['id']) ? $_SESSION['id'] : header('location: ../../login.php'); 
$Cursist = mysqli_query($con, "SELECT id FROM users WHERE id =".$_SESSION['id']); 
if(!$Cursist){ 
    header('location: ../login.php'); 
} 

$test = $_GET['id']; 

$sql = "DELETE FROM cursus WHERE id = $test"; 
$result = mysqli_query($con, $sql); 
if ($result) { 
    echo "<script type='text/javascript'>alert('Verwijdert!')</script>"; 
    header("Location: ../cursussen.php?destoyed=true&destroyed_id=".$_GET['id']); 
}else { 
    echo "mislukt"; 
} 
?> 

Antwort

1

Wenn Sie sorthring vor header senden wird nicht funktionieren. Sie können nur die Kopfzeile verwenden, bevor Sie eine Übertragung an den Client senden.

Denken Sie daran, dass header() aufgerufen werden muss, bevor eine tatsächliche Ausgabe gesendet wird, entweder mit normalen HTML-Tags, Leerzeilen in einer Datei oder aus PHP. Es ist ein sehr häufiger Fehler, Code mit Include- oder Require-Funktionen oder einer anderen Dateizugriffsfunktion zu lesen und Leerzeichen oder Leerzeilen zu haben, die ausgegeben werden, bevor header() aufgerufen wird. Das gleiche Problem tritt auf, wenn eine einzelne PHP/HTML-Datei verwendet wird.

http://php.net/manual/en/function.header.php

Sie mit Javascript tun könnten, aber es nicht zu empfehlen, da der Benutzer JavaScript deaktiviert haben könnte:

echo "<script type='text/javascript'>"; 
echo "alert('Verwijdert!')"; 
echo "document.location.href='index.html'"; 
echo "</script>"; 

Die beste Art Sitzung zu verwenden ist und Header, können Sie eine var speichern in der Sitzung und zeigen Sie eine Nachricht, wenn die var ist wahr, und wenn Sie die messasge zeigen löschen Sie die Sitzung var

delete.php

$_SESSION['deleted'] = true; 
header("Location: index.php); 

index.php

<?php if($_SESSION['deleted']){ ?> 
<?php unset($_SESSION['deleted']) ?> 
<div>Item was deleted</div> 
<?php } ?> 
+0

Danke, verwendet die zweite Art und Weise funktioniert gut! – marijn

0

Nun, das ist das Problem, dass die Umleitung sofort bewegen Sie zu einer neuen Seite, so dass jeder Javascript auf der alten Seite wird irrelevant. Sie können möglicherweise eine Verzögerung vor der Weiterleitung verwenden, damit die JavaScript-Warnung angezeigt werden kann.

Andernfalls führen Sie eine Variable ein, die Sie an die Umleitungszielseite senden, und verwenden Sie diese Variable, um dort ein Javascript-Popup auszulösen.

Verwandte Themen