Yesterday I started my first PHP course. Today reached an impediment in an apparently farily simple task I would appreciate your assistance with.
I have two files: index.php and function.php
Index.php contains the following code:
<form action="functions.php" method='POST'>
Insert name: <input type="text" name="name"><br>
Insert age: <input type="text" name="age"><br>
<input type=submit value="GO!" onclick="displayNameAndAge()">
</form>
Via
require 'functions.php';
i include functions.php which contains one single function:
function displayNameAndAge() {
if (isset($_POST["name"])) {
echo $_POST["name"];
}
if (isset($_POST["age"])) {
echo $_POST["age"];
}
}
Hence, after filling in the inputs specified in the form, I expect that clicking the button will get the data via the $_POST variable and display the data on the page. Where I did wrong, where am I misunderstanding the tutorial? Thank you in advance.
You are actually mixing php
code with jQuery
. Php
doesn't have any onclick
function/event. I have made some changes so try this code.
<form action="functions.php" method='POST'>
Insert name: <input type="text" name="name"><br>
Insert age: <input type="text" name="age"><br>
<input type=submit value="GO!" name="submit">
</form>
in functions.php
if (isset($_POST["submit"])) {
if (isset($_POST["name"])) {
echo $_POST["name"];
}
if (isset($_POST["age"])) {
echo $_POST["age"];
}
}
I don't know why and where do you use require 'functions.php';
. If you do it in your index.php
page then remove it. You form
will automatically send data and take you to functions.php
page
The onclick is HTML event attribute. It cannot call PHP function. As HTML runs on browser i.e. client and PHP runs on server.
What you can do is:
Add another file say post.php as by the name functions.php this file is supposed store the function definitions:
require 'functions.php';
displayNameAndAge();
The HTML should look like:
<form action="post.php" method='POST'>
Insert name: <input type="text" name="name"><br>
Insert age: <input type="text" name="age"><br>
<input type=submit value="Go!" name="submit">
</form>