Вчера я начал свой первый курс PHP. Сегодня возникла преграда в очевидно очень простой задаче, и я был бы признателен за вашу помощь.
У меня есть два файла: index.php и function.php
Index.php содержит следующий код:
<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>
Через
require 'functions.php';
Я включаю functions.php, который содержит одну единственную функцию:
function displayNameAndAge() {
if (isset($_POST["name"])) {
echo $_POST["name"];
}
if (isset($_POST["age"])) {
echo $_POST["age"];
}
}
Следовательно, после заполнения полей, указанных в форме, я ожидаю, что нажатие кнопки приведет к получению данных через переменную $ _POST и отображению данных на странице. Где я ошибся, где я неправильно понял учебник? Заранее спасибо.






Фактически вы смешиваете код php с jQuery. Php не имеет функции / события onclick. Я внес некоторые изменения, попробуйте этот код.
<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>
в functions.php
if (isset($_POST["submit"])) {
if (isset($_POST["name"])) {
echo $_POST["name"];
}
if (isset($_POST["age"])) {
echo $_POST["age"];
}
}
Не знаю, зачем и где вы используете require 'functions.php';. Если вы делаете это на своей странице index.php, удалите это. Ваш form автоматически отправит данные и перенесет вас на страницу functions.php.
Ой, действительно, моя беда. Спасибо за разъяснения, очень признателен.
Рад, что помог тебе. :)
Onclick - это атрибут события HTML. Он не может вызывать функцию PHP. Поскольку HTML работает в браузере, то есть на клиенте, а PHP работает на сервере.
Что вы можете сделать:
Добавьте еще один файл, скажем post.php, так как по имени functions.php этот файл должен хранить определения функций:
require 'functions.php';
displayNameAndAge();
HTML должен выглядеть так:
<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>
displayNameAndAge () - это функция php, и вы не можете использовать ее в атрибуте ypur input onclick, внутри этого ожидается функция JS.