This is what i want to do. Everytime when the admin successfully posted a news i want the div success alert to popup and dissappear after 3 seconds. I want to put it after the text "Add News" As you can see in picture. Can someone give me a clue on how to do this?
Here is the sample picture of my work.
here is my php code for adding the news.
<?php
include_once('connection.php');
session_start();
$username = ucfirst($_SESSION['username']);
if(isset($_POST['submit'])){
$title = $_POST['title'];
$date = $_POST['date'];
$content = $_POST['content'];
$file=$_FILES['image']['tmp_name'];
$image= @addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name= addslashes($_FILES['image']['name']);
move_uploaded_file($_FILES["image"]["tmp_name"],"img/" . $_FILES["image"]["name"]);
$newsimage="img/" . $_FILES["image"]["name"];
$sql ="INSERT into news (news_title, news_date, news_content, news_image) VALUES ('$title', '$date', '$content', '$newsimage')";
mysqli_query($con, $sql);
}
?>
here is my form where the alert box is in.
<div id="page-wrapper">
<div class="container-fluid">
<a class='btn btn-info' href ="news.php" style="margin-bottom:25px; float:right;" ><span class="glyphicon glyphicon-search"></span> View all news</a>
<form method="post" action ="addnews.php" enctype="multipart/form-data">
<h4>Add News</h4>
<div class="alert alert-success" id="success-alert">
<strong>Successfully posted!</strong>
</div>
<div class="form-group">
<label for="title">News Title</label>
<input type="text" name="title" class="form-control title" id="title" placeholder="News Title" required >
</div>
<div class="form-group">
<label for="title">Date</label>
<input type="text" name="date" class="form-control date" id="date" placeholder="Date" required >
</div>
<div class="form-group">
<label for="content">News Content</label>
<textarea class="form-control content" name="content" rows="5" id="content" required></textarea>
</div>
<img id="blah" src="" alt="image here" width="200px" height="140px"/>
<input id="image" name="image" class="fileupload" type="file" accept="image/*"/>
<button type="submit" name="submit" id="postnews" class='btn btn-info '>Post news</button>
</form>
</div>
<!-- /#page-wrapper -->
</div>
<!-- /#wrapper -->
You could Php session to display alert box on form submission like:
<?php
if(isset($_SESSION['form_submit'])) {
echo '<div class="alert alert-success alert-dismissable" id="success-alert">';
echo '<strong>Successfully posted!</strong>';
echo '</div>';
unset($_SESSION['form_submit']);
}
?>
You have set this session variable on form submission :- $_SESSION['form_submit']=true
to automaticaly hide this alert box you could use this javascript code
$(".alert-dismissable").fadeTo(2000, 500).slideUp(500, function(){
$(".alert-dismissable").alert('close');
});
In your addnews.php file do something like this
assuming that you are using core php means no framework
$msg = ''
$sql ="INSERT into news (news_title, news_date, news_content, news_image) VALUES ('$title', '$date', '$content', '$newsimage')";
if (mysqli_query($con, $sql))
{
$msg = 'success'
}
else
{
$msg = 'error'
}
header('Location: http://www.example.com/addnews.php?msg='.$msg);
IN your form file
Just receive the $msg using $_GET['msg']
<?php if (isset($_GET['msg'] and $GET['msg'] == 'success') {?>
<div class="alert alert-success" id="success-alert">
<strong>Successfully posted!</strong>
</div>
<?php }
if (isset($_GET['msg'] and $GET['msg'] == 'error') { ?>
<div class="alert alert-error" id="error-alert">
<strong>Something went wrong !</strong>
</div>
<?php } ?>
This can also be done by ajax in more efficient way
To close the alert use bootstrap alert close button or use jquery's setTimeout function
window.setTimeout(function () {
$("#success-alert").alert('close'); }, 2000);
});
Or u can use like :
$("#success-alert").fadeTo(2000, 500).slideUp(500, function(){
$("#success-alert").alert('close');
});
do the same for error
have created example, You can you use this, It is working fine. This div put after news div.
<div id="msg">
<?php if(isset($_SESSION) && $_SESSION['msg'] != ''){ ?>
<div class="alert alert-success">
<strong>Success!</strong> Successfully posted!
</div>
<?php } unset($_SESSION['msg']); ?>
</div>
Script : Set time out function
setTimeout( function(){$('#msg').hide();} , 3000);