Подскажите пожалуйста У меня есть форма Я заполняю ее и отправляю, страница обновляется и показывается результат Как сделать так что бы При нажатии отправить, что бы результат появлялся вот как то сбоку от формы ( как бы на этой же странице?) Код (Text): <body> <?php /*if (isset($_POST)['name']) { #name = $_POST['name']; } else { $name = ''; }*/ $name = $_POST['name'] ?? ''; $emeil = $_POST['emeil'] ?? ''; ?> <?php if ((!trim($name)) || (!trim($emeil))): ?> <?php if (!empty($_POST)): ?> <p>Заполните поля</p> <?php endif; ?> <form action="testFormsTwo.php" method="post" class="forms"> <p>Name: <input type="text" name="name" class="input"></p> <p>Emeil: <input type="text" name="emeil" class="input"></p> <p> <button type="submit" name="send-form">Send</button> </p> <?php else: ?> <p>Name: <?= $_POST['name'] ?> </p> <p>Emeil: <?= $_POST['emeil'] ?> </p> <?php endif; ?> </form> </div> </body> Спасибо
/form – только форма /form/1 – форма с первым результатом /form/2 – форма со вторым результатом и т.п. id-шники вставляемых записей можно получить при помощи mysqli_insert_id() и т.п. В ответ на POST-запрос ничего не выводят, а делают редирект. Даже с AJAX POST делать эхо полученных значений как-то стремно (и адрес страницы с измененной формой все равно лучше менять). Но если делаете лишь бы было и не надо сохранять пред. результат, выводите результат рядом с формой только при POST-запросе (см. $_SERVER['REQUEST_METHOD']).
никуда не сохраняется просто отправить и вывести на этой же странице сбоку $_SERVER['REQUEST_METHOD']). - это должно помочь?
Если хотите получить вменяемый код, даже между запросами надо куда-то сохранять (эхо персональных данных – отдельный вопрос). Иначе, да, ветвление с использованием показанной переменной должно помочь (наличие POST-параметров тоже нужно проверять).
@6edyUH чтобы поместить ответы рядом с формой, тут нужно подумать над вёрсткой ответа. Чтобы форма располагалась слева, а ответы справа. Попробуй либо сформатировать в ответе на запрос таблицу с двумя столбцами, где форма будет в левом, а результат в правом. Либо два div.
для таких фокусов у тега <form> есть атрибут target, который может указывать, например, на фрейм на этой же странице. Но т.к. до конца идея не ясна, боюсь это может не решить твою задачу. Попробуй, а потом расскажи какая была цель (а не идея) изначально. помести эти два файла в одной директории на сайте. один создает страницу с формой, другой обрабатывает результат формы и выводится "сбоку" на той же странице. обычно это делают через AJAX, но я хочу вот такой метод. index.php PHP: <html> <head> <style> #myform { float: left; width: 30%; } </style> </head> <body> <form id="myform" action="handler.php" target="myframe" method="post"> <input type="radio" id="html" name="fav_language" value="HTML"> <label for="html">HTML</label><br> <input type="radio" id="css" name="fav_language" value="CSS"> <label for="css">CSS</label><br> <input type="radio" id="javascript" name="fav_language" value="JavaScript"> <label for="javascript">JavaScript</label><br><br> <input type="submit" value="Submit"> </form> <iframe id="myform" name="myframe" src="handler.php"> </iframe> </body> </html> handler.php PHP: <?php $response = [ date('Y-m-d H:i:s') ]; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $response[] = var_export($_POST, true); } foreach ($response as $r) { echo '<pre>' . $r . '</pre>'; } чтобы результат был "сбоку", я использовал стили. а чтобырезультат был на той же странице без перезагрузки — адресацию через target. --- Добавлено ---