Как да изведете текст с благодарности, вместо да отваряте отделен URL чрез formmail.php

Това е моят сайт, върху който работя страницата за контакти.

Използвам formmail.php за формуляра за контакт (http://www.tectite.com/)

Когато потребителят изпрати формуляра, искам той да казва нещо като „Благодаря, вашето съобщение е изпратено“. Но искам този текст да се показва на страницата, където е формулярът - НЕ отваряйте отделен URL.

Вече има начин за пренасочване към отделна страница с помощта на:

    <input type="hidden" name="good_url" value="http://yoursite.com/thanks.htm" />

Въпреки това, тъй като моят сайт е сайт с превъртане на една страница, искам да избягвам навигирането.


person user2419684    schedule 27.08.2014    source източник


Отговори (3)


Можете просто да използвате функционалността на ajax, за да го направите

$.ajax({
                url: "page which you want to call on action",
                data: $( "form" ).serialize(),
                type: 'POST',
                async: false,
                success: function(responseObject) {
                   // $("#hiddendiv").show(); // OR
                   // $("#hiddendiv").html("thanks message");
                }
            });
person Abhishek Sanghvi    schedule 27.08.2014
comment
$.post() е стенограмата. Освен това се предлага да се покаже съобщение за зареждане на екрана или потребителите няма да знаят какво се случва, когато AJAX се изпълнява зад сцената. - person Raptor; 27.08.2014
comment
Просто дадох идея как можем да го направим. Също така мисля, че @user2419684 е програмист и той може да управлява как ще изглежда потребителският интерфейс.. проверете stackoverflow.com/a/12820123/165370 - person Abhishek Sanghvi; 27.08.2014
comment
Опитах и ​​това, и решението на @Kanantuteja по-долу, но то все още показва страницата с формуляр по подразбиране - как мога да отменя това? - person user2419684; 27.08.2014
comment
Трябва да предоставите повече подробности (страница за формуляр за имейл или страница за изпращане), за да ви помогнем по-добре - person Abhishek Sanghvi; 27.08.2014

Пробвай този ajax

  $.ajax({
          type: "POST",
          url: "send.php",
          data: $(form).serialize(),
          timeout: 3000,
          success: function() {
            $("#contactForm").hide();
            $('#divContactFrm').html("<div id='divSuccessMsg'></div>");
            $('#divSuccessMsg').html("Thank you!")
            .hide()
            .fadeIn(1500, function() { $('#divSuccessMsg'); 
        });
          }
person Kanan tuteja    schedule 27.08.2014
comment
Последната част за обратно извикване fadeIn() изглежда странно. Функцията за обратно извикване може да бъде оставена празна. - person Raptor; 27.08.2014
comment
От вас зависи да добавите fadeIn() за скриване на div или не, в противен случай използвайте горния код, за да покажете благодарности messgae. - person Kanan tuteja; 27.08.2014

Можете да използвате Ajax, както отговори @Abhishek. Или направете нещо като по-долу.

if(isset($_POST['submit']))
{
   //Your code for mailing
   header('location:formmail.php?message=set');
}

След това на мястото, където искате да покажете съобщението

if(isset($message))
{
   echo "Thanks";
}
person arunrc    schedule 27.08.2014
comment
а? Ако страницата не се презареди, PHP isset() няма да провери отново. Освен това не забравяйте да поставите exit() след header('Location: url');. Грешен синтаксис на заглавката също. - person Raptor; 27.08.2014