$error = "";
$success ="";
if(isset($_POST['submit'])) {
if (empty($_POST['cat_title'])){
$error .= "Category cannot be empty";
} else {
$cat_title = $link->real_escape_string($_POST['cat_title']);
$sql = "INSERT INTO `categories`(cat_title) VALUES('$cat_title')";
if ($result = $link->query($sql) == TRUE) {
$success .="record added";
<div><?php echo $error.$success;?></div>
function insert_categories(){
global $link;
$error = "";
$success ="";
if(isset($_POST['submit'])) {
if (empty($_POST['cat_title'])){
$error .= "Category cannot be empty";
} else {
$cat_title = $link->real_escape_string($_POST['cat_title']);
$sql = "INSERT INTO `categories`(cat_title) VALUES('$cat_title')";
if ($result = $link->query($sql) == TRUE) {
$success .="record added";
<div><?php echo $error.$success;?></div>
because I am willing to bet it is not inside your function.<?php
function insert_categories(){
global $link;
$error = "";
$success ="";
if(isset($_POST['submit'])) {
if (empty($_POST['cat_title'])){
$error .= "Category cannot be empty";
} else {
$cat_title = $link->real_escape_string($_POST['cat_title']);
$sql = "INSERT INTO `categories`(cat_title) VALUES('$cat_title')";
if ($result = $link->query($sql) == TRUE) {
$success .="record added";
}
}
echo $error.$success;
}
}
?>
<div class="form-group">
<input type="submit" class="btn btn-primary "name="submit" value="Add Category">
<div><?php insert_categories();?></div>
</div>
$cat_title = empty($_POST['cat_title'])
? $link->real_escape_string($_POST['cat_title'])
: false;
Should probably be:
$cat_title = !empty($_POST['cat_title'])
? $link->real_escape_string($_POST['cat_title'])
: false;
function insert_categories($link){
<div><?php echo insert_categories();?></div>
function insert_categories($link){
$cat_title = empty($_POST['cat_title'])
? false;
: $link->real_escape_string($_POST['cat_title'])
Thanks Ray, side effects of not testing code before posting.
<div><?php echo insert_categories($link);?></div>
<div><?php echo insert_categories($link);?></div>
$error .= '<div class="alert alert-danger" role="alert">Category cannot be empty</div>';
$success = '<div class="alert alert-success" role="alert">Record added</div>';
<?php
function insert_categories($link)
{
$response = "";
$cat_title = empty($_POST['cat_title'])
? $link->real_escape_string($_POST['cat_title'])
: false;
if ($cat_title) {
$sql = "INSERT INTO `categories`(cat_title) VALUES('{$cat_title}')";
$result = $link->query($sql);
if ($result) {
$response = '<div class="alert alert-success">Record added</div>';
}
//EDIT
else {
$response = '<div class="alert alert-danger">Insert failed with error ' . $link->error . "</div>";
}
}
else {
$response = '<div class="alert alert-danger">Category cannot be empty</div>';
}
return $response;
}
// This gets called at the start of your script
$result = $insert_categories($link);
?>
...
<div class="form-group">
<input type="submit" class="btn btn-primary "name="submit" value="Add Category">
<?php echo $result?>
</div>
Sidebar: .= is a contactination operation - it means append to the variable the string on the right. Your $error value is clean so you don't need to do that.
$response = '<div class="alert alert-danger">Category cannot be empty</div>';
$error= insert_category($link);
// Assume the worst
$class = 'alert-danger';
if (empty($error)) {
$class = 'alert-success';
$error = 'Record Added';
}
...
<div class="alert <?php echo $class;?>"><?php echo $error;?></div>
As for the message showing immediately - that is because there is no check for a post$class = 'hidden';
if ($_POST) {
// above code with call to insert_category here
}
// If no POST we drop through and class hidden kicks in and hides the status <div>
function insert_categories($link){
$response = "";
$class = 'alert-success';
if (isset($_POST['cat_title'])) {
if (!empty($_POST['cat_title'])){
$cat_title = $link->real_escape_string($_POST['cat_title']);
$sql = "INSERT INTO `categories`(cat_title) VALUES('$cat_title')";
if ($result = $link->query($sql) == TRUE) {
//$response = '<div class="alert alert-success" role="alert">Record added</div>';
$response = "Record added";
}
} else {
$class = 'alert-danger';
//$response = '<div class="alert alert-danger" role="alert">Category cannot be empty</div>';
$response = "Category cannot be empty";
}
return $response;
}
}
<div><?php echo insert_categories($link);?></div>
https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html