0

Hi,

It's really late now,

I am trying to figure out how to echo a message when I submit a form.

Here is the code:

<?php 
$msg = "";
if ($_POST['title'] != ""){
    $title = $_POST['title'];
    $author = $_POST['author']; 
    $author = stripslashes($author);

    if (!$title){
        $msg = "Please Add Title";
    } else if (!$author){
        $msg = "Please Add Author";
    }
    $query = mysql_query("INSERT INTO time (title, contents) VALUES ('$title', '$author')") or die (mysql_error());
    $msg = "Submitted";
}
?> 

Here is my Form:

<form action="addinfo.php" method="post">
Title:<br />
<input type="text" name"title" /><br /><br />
Author:<br />
<textarea name="author"></textarea>
<br /><br />
<input type="submit" name="submit" value="Submit" /><?php echo $msg; ?>

</form>

The issue is that the when I click Submit it should echo "Submitted" but it doesn't any suggestions?

I really appreciate if someone explain to me how fixed this minor issue. Thanks!

Edited by LastMitch: grammer

2
Contributors
5
Replies
7
Views
5 Years
Discussion Span
Last Post by LastMitch
0

Can you confirm whether the PHP code appears immediately before the HTML code in the same file, addinfo.php?

0

@blocblue

Thanks for the reply!

The code that I wrote above is the addinfo.php.

The file is addinfo.php

   <?php
    $msg = "";
    if ($_POST['title'] != ""){
    $title = $_POST['title'];
    $author = $_POST['author'];
    $author = stripslashes($author);
    if (!$title){
    $msg = "Please Add Title";
    } else if (!$author){
    $msg = "Please Add Author";
    }
    $query = mysql_query("INSERT INTO time (title, contents) VALUES ('$title', '$author')") or die (mysql_error());
    $msg = "Submitted";
    }
    ?> 

-

    <form action="addinfo.php" method="post">
    Title:<br />
    <input type="text" name"title" /><br /><br />
    Author:<br />
    <textarea name="author"></textarea>
    <br /><br />
    <input type="submit" name="submit" value="Submit" /><?php echo $msg; ?>
    </form>

Sorry for the confusing. I put it altogether into 1 file to see how it works. I create a table on the server and I want to submit it to the database. So that's why I want it echo $msg to let me know it's Submitted

1

Okay, looks like you need a few tweaks.

  1. Line #2 - don't test for the presence of $_POST['title'] as this will generate a notice because the index will not exist when the form hasn't been submitted.

  2. Lines #7 - #13 - Your query and "submitted" message need to be in an else block, otherwise any message set due to the title or author fields being empty will always be overwritten come line #13.

  3. Line #3 (form) - you're missing an equals sign - name"title". This is causing the value of the name attribute to not be recognised.

Please see revised code below:

$msg = "";

if ($_POST){
    $title = $_POST['title'];
    $author = $_POST['author'];
    $author = stripslashes($author);

    if (!$title){
        $msg = "Please Add Title";
    } else if (!$author){
        $msg = "Please Add Author";
    } else {
        $query = mysql_query("INSERT INTO time (title, contents) VALUES ('$title', '$author')") or die (mysql_error());
        $msg = "Submitted";
    }
}
?> 
<form action="addinfo.php" method="post">
Title:<br />
<input type="text" name="title" /><br /><br />
Author:<br />
<textarea name="author"></textarea>
<br /><br />
<input type="submit" name="submit" value="Submit" /><?php echo $msg; ?>
</form>
Votes + Comments
Thanks for the explanation & correction!
0

@blocblue

Thanks for the explanation. I will test it now

0

@blocblue

It work! Thanks for the explanation!

So you took this out:

['title'] != ""

and just $_POST by itself

 if ($_POST){

it makes sense now.

I didn't see any error on Dreamweaver on the form. It's usually turn red if there's a error, so in the form it was all yellow. I assumed it must be in php script (there was no red marks either). I can't believe I miss the equal sign!

It worked and the $msg appeared once I click submited and the data appeared in the database. I appreciate again for taking your time to explain and correct my errors in the code and answer my question. Thanks again!

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.