1

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.

1
  • 1
    displayNameAndAge() is a php function and you can't use it in ypur input's onclick attribute, inside this it expected a JS function. Commented Aug 29, 2018 at 10:10

2 Answers 2

2

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>
Sign up to request clarification or add additional context in comments.

Comments

1

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

2 Comments

Oh, indeed, my bad. Thanks for clarifying, much appreciated.
I glad, I helped you. :)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.