Я все еще изучаю скрипты php и java. Я создаю простую контактную форму и устанавливаю действие формы на ту же страницу, используя $ _Server [php_self]
Я хочу, чтобы когда кто-то отправлял мою форму, он отображал сообщение, включающее имя, которое было отправлено на той же странице. замените контактную форму сообщением.
Я также попытался указать действие на другую страницу php. и это все еще не сработало. Javascript так работает? или для этого мне придется использовать другой код или другой язык.
Вот мой код
<!DOCTYPE html>
<html>
<head>
<?php
include 'action.php';
?>
<title> My profle</title>
<meta name = "robots" content = "noindex">
<link rel = "stylesheet" type = "text/css" href = "style.css">
</head>
<body>
<div class = "contact">
<form class = "form" class = "contact" id = "contact-form" action = "action.php" method = "POST">
Name: <br>
<input type = "text" class = "field" name = "name"><br>
Number:<br>
<input type = "text" class = "field" name = "number"><br>
Email:<br>
<input type = "email" class = "field" name = "email:>"<br>
<br>
<input type = "submit" class = "submit" name = "submit" value = "submit"
onclick = "document.getElementById('contact-form').innerHTML='<?php thankyou();?>'">
</form>
</div>
</body>
</html>Тогда вот файл action.php
<?php
function thankyou(){
$name = $_POST['name'];
echo "Thank you"." $name ! Your message has been submitted.";
}
?>Таким образом можно смешивать js / php. Проблема в том, что $ _POST не был установлен до отправки формы. Во второй раз, когда вы отправляете форму, имя должно отображаться.
это не будет работать так, как хотите, вам нужно будет использовать js, чтобы получить имя для сообщения с благодарностью, а затем отправить форму для обработки в php
Извините, неправильно понял комментарий



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У вас тут пара разных проблем.
Во-первых, это непонимание сроков запуска PHP и JS.
Во-вторых, изменения DOM теряются при загрузке новой страницы.
Вот что происходит:
$_POST не имеет ключа name)innerHTML (помните, что PHP вернулся на шаг 2)Дополнительная литература: В чем разница между программированием на стороне клиента и на стороне сервера?.
+1 за информативный ответ, который по-прежнему приводит к некоторым исследованиям вместо копирования и вставки кода. Пытаюсь сделать мои ответы более похожими на это ...
Я готов услышать лучшие способы сделать это в комментариях, так как это не в моей голове, и я знаю, что есть лучшие решения ... но вот что я бы сделал в вашей ситуации:
<!DOCTYPE html>
<html>
<head>
<title> My profle</title>
<meta name = "robots" content = "noindex">
<link rel = "stylesheet" type = "text/css" href = "style.css">
</head>
<body>
<div class = "contact">
<form class = "form" class = "contact" id = "contact-form" action = "" method = "POST">
<?php
if (isset($_POST)){
//process data however (I'm assuming) you need to - even if just posting to another script at this point...
echo 'Thank you '.$_POST['name'].' ! Your message has been submitted';
}
else{
echo 'Name: <br>
<input type = "text" class = "field" name = "name"><br>
Number:<br>
<input type = "text" class = "field" name = "number"><br>
Email:<br>
<input type = "email" class = "field" name = "email"><br>
<br>
<input type = "submit" class = "submit" name = "submit" value = "submit">';
}
?>
</form>
</div>
</body>
</html>
Спасибо, мне еще нужно изучить больше, я посмотрю, как их комбинировать и правильно рассчитать время. в любом случае, это демо, над которым я работал. resume.sofisticadoblends.com
np, подумал, что может помочь увидеть некоторый код, который правильно учитывает порядок языковой обработки - хотя я надеялся на дополнительный вклад сообщества - я знаю, что совместное использование php и html имеет много передовых методов, и некоторые люди не согласны с тем, что на самом деле лучшая практика.
P.S. javascript успешно возвращает функцию thankyou (), но имя $ отсутствует /