user3258571 user3258571 - 4 months ago 13
Javascript Question

Show/Hide Div based on $_GET

I am currently using a Bootstrap 3 Alert

div
to flash a message when a transaction is completed. The Alert contents is coming from a header (location) from the previous page.

Above the closing /body tag:

</script>
<script type="text/javascript">
window.setTimeout(function() {
$(".alert").fadeTo(500, 0).slideUp(500, function(){
$(this).remove();
});
}, 4000);
</script>


And my Alert:

<div class="bs-example">
<div class="alert alert-success" id="success-alert" style="font-size:120%;">
<a href="#" class="close" data-dismiss="alert">&times;</a>

<?php

$email = $_GET['e'];
$receipt = $_GET['r'];

if (isset($_GET["msg"])) {

$msg = $_GET["msg"];

if ($msg == "1") {

echo "Receipt $receipt was sent to $email.";
} else {

echo "Message was not sent.";
}
}
?>

</div>
</div>


The Alert
div
shows up even if the
$_GET
's are not there. In other words on load before I do anything the
div
is there blank. I want the user to complete the form on my page and be redirected with the URL?msg=1 to same page with the Alert message showing. Other than that the
div
does not have to show.

Kld Kld
Answer

You need to wrap the alert code inside a PHP if statement where you can check if the $_GET variable are set.

 <?php if(isset($_GET['e']) && isset($_GET['r'])) { ?>

   <div class="bs-example">
        <div class="alert alert-success" id="success-alert" style="font-size:120%;">
            <a href="#" class="close" data-dismiss="alert">&times;</a>

        <?php

            $email = $_GET['e'];
            $receipt = $_GET['r'];

        if (isset($_GET["msg"])) {

            $msg = $_GET["msg"];

            if ($msg == "1") {

                echo "Receipt $receipt was sent to $email.";
            } else {

                echo "Message was not sent.";
            }
        }
        ?>

        </div>
    </div>

 <?php } ?>