Xtrem fabz
Xtrem fabz

Reputation: 121

javascript alert box not showing on php after header redirect

I am trying to display an alert box before redirecting to another page, here is my code, when I remove the header function it works properly but when it is here it will just redirect to the page without showing the alert box.

<html>
    <body>
        <?php
        include("dbconfig.php");

        $tempid = mysqli_real_escape_string($dbconfig, $_POST['tempid']);

        $sql_query = "DELETE FROM Visits
    WHERE visitid = '$tempid'";
        $result = Mysqli_query($dbconfig, $sql_query);
        if ($result) {

            echo '<script language="javascript">';
            echo 'alert("visit deleted successfully")';
            echo '</script>';

            header("location:../SearchCountry/search.php");
        }
        ?>
    </body>
</html>

Upvotes: 3

Views: 6282

Answers (2)

Kevin
Kevin

Reputation: 2893

PHP is executed at the server side. It renders HTML/JS/CSS and sends it to the web browser, the web browser then parses and executes the JavaScript (In your case, show the alert dialog.)

However, once you call

header ("location:../SearchCountry/search.php");

The browser will be informed to redirect the user to ../SearchCountry/search.php immediately, without a chance to parse and execute the JavaScript. That's why the dialog will not show up.

Solution: redirect your user to another page with JavaScript instead of PHP.

 <html>
 <?php
 include("dbconfig.php");

 $tempid = mysqli_real_escape_string($dbconfig,$_POST['tempid']);

$sql_query = "DELETE FROM Visits
WHERE visitid = '$tempid'";
$result = Mysqli_query($dbconfig,$sql_query);
if($result){
    echo '<script language="javascript">';
    echo 'alert("visit deleted successfully");\n';
    echo 'window.location.href="../SearchCountry/search.php"'; //Redirects the user with JavaScript
    echo '</script>';
    die(); //Stops PHP from further execution
}
 ?>
</body>
</html>

Upvotes: 6

Naresh Kumar
Naresh Kumar

Reputation: 561

echo "<script>
alert('visit deleted successfully');
window.location.href='SearchCountry/search.php';
</script>";

and get rid of redirect line below.

You were mixing up two different worlds.

Upvotes: 5

Related Questions