Выполнение обработчика формы на одной странице

gamera

Постоялец
Регистрация
14 Мар 2010
Сообщения
115
Реакции
8
Добрый день, подскажите пожлауйста, как сделать чтобы не было перехода на страницу обработчика, и после заполнения формы, выводилось сообщение о успешном заполнение

вот сама форма:
Код:
<body class="body-modal" style="zoom: 1;">
  <form action="../wp-content/themes/3clicks/save_user.php" method="post" class="modal modal-form">

      <div class="modal-body">
          <div id="block-phy" class="block">
         
      <div class="row">
              <div class="span2 control-group">
          <label for="name"><?php echo __('Name','forma-zakaza');?> <em>*</em></label>
          <input name="name" class="span2" type="text" id="name" value="">        </div>
                  <div class="span2 control-group">
          <label for="surname"><?php echo __('Surname','forma-zakaza');?> <em>*</em></label>
          <input name="surname" class="span2" type="text" id="surname" value="">        </div>

        <div class="span2 control-group" id="phy-code-lv">
          <label for="pkod_1"><?php echo __('Personal code','forma-zakaza');?> <em>*</em></label>
          <input style="width: 67px;" name="pkod_1" class="span1" maxlength="6" type="text" id="pkod_1" value="">          <span class="sep">–</span>
          <input style="width: 57px;" name="pkod_2" class="span1" maxlength="5" type="text" id="pkod_2" value="">        </div>
      </div>
      <div class="row">
        <div class="span3 control-group">
          <label for="email"><?php echo __('Email','forma-zakaza');?> <em>*</em></label>
          <input name="email" class="span3" type="text" id="email" value="">        </div>
        <div class="span3 control-group">
          <label for="phone"><?php echo __('Phone','forma-zakaza');?> <em>*</em></label>
          <input name="phone" class="span3" type="text" id="phone" value="">        </div>
      </div>
     
      <div class="modal-footer">
    <input name="type" type="hidden" id="type" value="1">   
    <input type="submit" value="<?php echo __('Submit','forma-zakaza');?>" class="btn btn-success">
  </div>
    </div>

</form>

Вот обработчик:
Код:
<?php
if (isset($_POST['name'])) { $name = $_POST['name']; if ($name == '') { unset($name);} }
if (isset($_POST['surname'])) { $surname=$_POST['surname']; if ($surname =='') { unset($surname);} }
if (isset($_POST['pkod_1'])) { $pkod_1 = $_POST['pkod_1']; if ($pkod_1 == '') { unset($pkod_1);} }
if (isset($_POST['pkod_2'])) { $pkod_2 = $_POST['pkod_2']; if ($pkod_2 == '') { unset($pkod_2);} }
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} }
if (isset($_POST['phone'])) { $phone = $_POST['phone']; if ($phone == '') { unset($phone);} }


//Для физичеких лиц:
$name = stripslashes($name);
$name = htmlspecialchars($name);

$surname = stripslashes($surname);
$surname = htmlspecialchars($surname);

$pkod_1 = stripslashes($pkod_1);
$pkod_1 = htmlspecialchars($pkod_1);

$pkod_2 = stripslashes($pkod_2);
$pkod_2 = htmlspecialchars($pkod_2);

$email = stripslashes($email);
$email = htmlspecialchars($email);

$phone = stripslashes($phone);
$phone = htmlspecialchars($phone);



include ("bd.php");

// если такого нет, то сохраняем данные
$result2 = mysql_query('INSERT INTO `clients` (name,surname,perskod,email,phone) VALUES ("'.$name.'","'.$surname.'","'.$pkod_1.'-'.$pkod_2.'","'.$email.'","'.$phone.'")');

// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
echo "заказ принят <a href='index.php'>Главная страница</a>";
    }

else {
echo "Ошибка! Вы не зарегистрированы.";
     }
?>
 
Засунуть перед выводом контента страницы условие - если получен ПОСТ запрос с полем с таким то именем, то обработать форму и вывести "спасибо"
Иначе - вывод страницы - то что было изначально.
И завернуть в jquery ajax - решений полно Для просмотра ссылки Войди или Зарегистрируйся

PHP:
if (isset($_POST['name'])) {
обрабатываем и выводим спасибо
} else {
код формы
}
 
не совсем понял, он же переходит на страницу обработчика и выводит сообщение
PHP:
if ($result2=='TRUE')
{
echo "заказ принят <a href='index.php'>Главная страница</a>";
    }

else {
echo "Ошибка! Вы не зарегистрированы.";
     }
 
Никуда он не выходит.
Если форма должна обрабатываться на той же самой странице, то в коде этой же страницы прописываем аякс запрос с формы и отправляем его на эту же страницу.
А он уже скажет или
echo "заказ принят <a href='index.php'>Главная страница</a>";
или
echo "Ошибка! Вы не зарегистрированы.";
Почитайте что такой jquery ajax и зачем он нужен.
 
  • Заблокирован
  • #5
сказал человек и дал ссылку на jquery плагин :crazy:
делай на css'е аякс или на чем там еще можно по твоему мнению? Мне без разницы.
Смысл в использовании плагина когда делается все без них. Он только увесит страницу лишним подключением скрипта.
Выше я давал ссылку с ТАКОЙ же формой с тем же самым путем работы
 
  • Заблокирован
  • #7
сказал человек и дал ссылку на jquery плагин
я не хейтил jQuery и не занимался чем-то подобным. Просто чуток поправил тебя вот и всё.
Он только увесит страницу лишним подключением скрипта
да это даже во времена dial up'а мало кого волновало.
 
Назад
Сверху