2014-02-04 5 views
0

Я использую этот jquery script, чтобы вызвать модальное всплывающее окно, которое в основном является формой контакта.Необходимое решение для всплывающей формы требуется

Что happengs в коде, что следующий DIV скрыт перед тем один из изображений щелкают:

<div id="toPopup"> 

     <div class="close"></div> 
     <span class="ecs_tooltip">Press Esc to close <span class="arrow"></span></span> 
     <div id="popup_content"> <!--popup content starts--> 


<form action="mail.php" method="POST"> 
<input id="firstinput" type="text" name="name" placeholder="Navn"><br/> 
<input type="text" name="email" placeholder="Email"><br/> 
<input type="text" name="phone" placeholder="Telefon nr"> 

<br /> 

<textarea name="message" rows="6" cols="25" placeholder="Besked"></textarea><br /> 
<input type="submit" value="Send"> 
</form> 
     </div> 
    </div> 

После того, как форма заполнена и отправлена, скрипт PHP просто вторит Тхак вам сообщение. Я хочу, чтобы после того, как форма была отправлена ​​благодарственное сообщение, появится в том же всплывающем окне. Интересно, какое решение имеет смысл.

Любая помощь или руководство очень ценятся.

ответ

1

Если вы хотите, чтобы это было своего рода подход «на месте», используйте AJAX для отправки формы и вставьте сообщение благодарности, используя JavaScript.

См. jQuery AJAX submit form за подробные сведения о отправке формы с использованием AJAX/jQuery.

Другое решение без использования Javascript для отправки было бы просто отправить форму с PHP, как есть. Вы можете ссылаться на тот же файл в своей форме и после проверки на успех вставьте свое сообщение «Спасибо» в код всплывающих окон. В этом случае также добавьте класс во внешний элемент popups, чтобы заставить его показывать, не активируя его.

+0

Извините за загадочный ответ. Допустим, что форма указана в index.php. Вы позволили бы действию формы перейти к index.php, пусть там возникнет логика форм, а затем просто откликните свое «Спасибо». В этом случае вам также необходимо будет автоматически открыть всплывающее окно (без какого-либо взаимодействия с пользователем), чтобы у пользователя возникло ощущение, что он все еще находится на той же странице. Поэтому вам нужно манипулировать вами javascript (например, классом, как я предложил), чтобы просто открыть всплывающее окно, если форма уже отправлена. Решение параметра URL Sankalp 'довольно похоже и, возможно, проще понять. – markusthoemmes

1

Для этого могут быть два решения.

1. Использование AJAX для отправки формы

Вы можете отправить форму с помощью Ajax. Теперь, когда вы получите ответ, вы можете изменить HTML внутри всплывающего окна, показывая спасибо.

2. Представьте форму и добавить параметр в URL

Отправить форму, как вы делаете сейчас. Если представление формы успешное, добавьте переменную в сеанс или URL-адрес. Теперь проверьте, установлена ​​ли эта переменная и откройте всплывающее окно с сообщением.

Я бы сказал, что 1-й подход является лучшим.

+0

Спасибо за ваш быстрый ответ, но в отношении второго решения я не совсем уверен, как и где проверить, установлена ​​ли эта новая переменная и как открыть новое всплывающее сообщение. Любое руководство было бы высоко оценено – Domas

+0

@Domas Когда вы проверяете форму, вы перенаправляете куда-нибудь? Если да, просто добавьте строку запроса. например, 'targage.php? msg = Thankyou'. На trypage.php проверьте '$ _GET ['msg']' –

Смежные вопросы