Отправка данных формы без перезагрузки

133
11 декабря 2019, 04:30

Друзья, я не силен в PHP и Ajax, по этому прошу помощи. Имеется файл простой index.php, в нем имеется 2 формы. Как мне сначала скрыть вторую форму, а после отправки первой, без перезагрузки станицы показать вторую и скрыть первую, и в конце показать сообщение. Также когда отправляю данные в БД из второй формы (пароль) нужно записать его для ID того же пользователя (наверное брать из сессии).

Файл index.php

<?php
session_start();
?>
<html>
    <head>
    <title>Главная страница</title>
    </head>
    <body>
    <div id="one">
    <form action="save_user.php" method="post" id="form_one" >
                          <div class="form-group">
                            <input name="first_name" placeholder="First Name"  type="text"  >
                          </div>
                          <div class="form-group">
                            <input  name="last_name" placeholder="Last Name"  type="text" >
                          </div>
                          <div class="form-group">
                            <input  name="email" placeholder="Email"  type="text" >
                          </div>
                          <div class="form-group">
                            <button type="submit" id="btn_1"><span>NEXT</span></button>
    </form>
    </div>
    <div id="two">
    <form action="save_user.php" method="post" id="form_two" >
                          <div class="form-group">
                            <input name="password" placeholder="Password" type="text"  >
                          </div>
                          <div class="form-group">
                            <input  name="password" placeholder="Confirm password" type="text" >
                          <div class="form-group">
                            <button type="submit" id="btn_2"><span>NEXT</span></button>
    </form>
    </div>
    </body>
    </html>

файл обработчик формы save_user.php

<?php
if (isset($_POST['first_name'])) { $first_name = $_POST['first_name']; if ($first_name == '') { unset($first_name);} }
if (isset($_POST['last_name'])) { $last_name = $_POST['last_name']; if ($last_name == '') { unset($last_name);} } 
if (isset($_POST['email'])) { $email=$_POST['email']; if ($email =='') { unset($email);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if (empty($first_name) or empty($last_name) or empty($email)) 
{
exit ();
}
$first_name = stripslashes($first_name);
$first_name = htmlspecialchars($first_name);
$last_name = stripslashes($last_name);
$last_name = htmlspecialchars($last_name);
$email = stripslashes($email);
$email = htmlspecialchars($email);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$first_name = trim($first_name);
$last_name = trim($last_name);
$email = trim($email);
$password = trim($password);
include ("bd.php");

$result = mysql_query("SELECT id FROM cust WHERE first_name='$first_name'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
exit ();
}

$result2 = mysql_query ("INSERT INTO cust (first_name,last_name,email,password) VALUES('$first_name','$last_name','$email','$password')");
if ($result2=='TRUE')
{
header("Location: index.php"); 
exit();
}
else {
echo "Missing fields";
     }
?>
Answer 1

У вас очень сложный вопрос. Без смеха. Вы предлагаете сделать за вас всю работу. Вот если бы вы спросили "что мне нужно изучить чтобы сделать искомое?" Тогда ответ: "изучайте jQuery, javascript"

Answer 2

Всё просто. На форму. которую нужно скрыть вешаешь dispay: none, а на вторую форму dispay: block. При получении ответа через AJAX в success у первой формы меняешь display на block, а у второй на none.

P.s. скрывать и показывать формы можно через JQuery (hide() и show())

READ ALSO
Отправка данных из формы в бд

Отправка данных из формы в бд

Уже задавал ранее, но так и не разобрался1

149
Не загружается вид laravel 5.7, ошибка Too few arguments to function e(), 0 passed in

Не загружается вид laravel 5.7, ошибка Too few arguments to function e(), 0 passed in

Я сделал обычный маршрут, чтобы просто возвращал мне вид через контроллер (если сделать функцию для маршрута и туда добавить: return view('manageraddworker');...

128
Два сайта на одном субдомене. Возможно ли?

Два сайта на одном субдомене. Возможно ли?

Есть сайт на субдомене, на нём уже установлен WordPress, но нужно ещё в этот же субдомен засунуть второй сайт на чистом phpПосоветуйте - возомжно...

115
INSERT в mysqli_multi_query

INSERT в mysqli_multi_query

Предположим есть запрос

155