Sankalp Nigam
Sankalp Nigam

Reputation: 37

How to show alert box after successful data insertion in mysql?

I want to show JavaScript alert after successful data insertion in MySQL. How to do this? I have written this code but it shows JavaScript alert everytime I open this page and as soon as i click on OK of JavaScript alert it redirects me to finalmem.php, without the action of taking values from users!

$sql="INSERT INTO members VALUES ('$name', '$email', '$ybr', '$ach')";

if(!mysqli_query($con,$sql)) 
{
    die('Error: ' . mysqli_error($con));
}

else
{

    echo '<script language="javascript">';
    echo 'alert("Successfully Registered"); location.href="finalmem.php"';
    echo '</script>';
}       

Thanks in advance.

Upvotes: 1

Views: 19493

Answers (3)

Shehary
Shehary

Reputation: 9992

You can try like this

<?php session_start();
//Include database detail here
if(isset($_POST['name'])){
    $name = mysqli_real_escape_string($_POST["name"]);
    $ybr = mysqli_real_escape_string($_POST["ybr"]);
    email = mysqli_real_escape_string($_POST["email"]);
    $ach = mysqli_real_escape_string($_POST["ach"]);

    //Do your data validation here

    $_SESSION['sname'] = $name;
    $_SESSION['sybr'] = $ybr;
    $_SESSION['semail'] = email;
    $_SESSION['sach']= $ach;

    $sql="INSERT INTO members VALUES ('$name', '$email', '$ybr', '$ach')";
    if(!mysqli_query($con,$sql)) {
        die('Error: ' . mysqli_error($con));
    } else {
        echo '<script language="javascript">';
        echo 'alert("Successfully Registered"); location.href="finalmem.php"';
        echo '</script>';
    }
}
?>

Upvotes: 0

Crunch Much
Crunch Much

Reputation: 1527

Use is set isset($_POST['submit']) to check whether user submits the form or not

    <?php

    include 'SQLIDB.php';   

    if(isset($_POST['submit'])){

        $name=$_POST['name'];
        $email=$_POST['email'];
        $ybr=$_POST['ybr'];
        $ach=$_POST['ach'];

    $sql="INSERT INTO members VALUES ('$name', '$email', '$ybr', '$ach')";

    if(!mysqli_query($con,$sql)) 
    {
        die('Error: ' . mysqli_error($con));
    }

    else
    {

        echo '<script language="javascript">';
        echo 'alert("Successfully Registered"); location.href="finalmem.php"';
        echo '</script>';
    }  

    }

?>

    <form action="" method="post">

        <input type="text" name="name">
        <input type="text" name="email">
        <input type="text" name="ybr">
        <input type="text" name="ach">

        <input type="submit" name="submit" value="Submit">

    </form>

Upvotes: 1

Met El Idrissi
Met El Idrissi

Reputation: 179

You need to know two things, one of them it's to confirm if your data it's saved succefully.

For this you can play with

mysql_affected_rows() 

and this function will return the number of rows affected by your query. If zero, it was not inserted. If >= 1, it was.

So:

if ( mysql_affected_rows() >= 1 ){ /* inserted! now do something... */ }

If you are using an auto-incrementing column for row ID, you can use mysql_insert_id() as well:

if ( mysql_insert_id() > 0 ) { /* inserted! now do something... */ }

Then you can work with jQuery UI for show a dialog like this:

[https://jqueryui.com/dialog/][1]

You need tot load the .css and .js files to run jQuery and inside your code put this:

  <script>
  $(function() {
    $( "#dialog" ).dialog();
  });
  </script>

And this in your view:

<div id="dialog" title="Basic dialog">
  <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>

Normally this it's super ugly to do for me, because the best way it's doing this by AJAX.

Upvotes: 0

Related Questions