2013-05-08 3 views
0

Я пытаюсь вернуть сообщение «Спасибо» после успешной проверки электронной почты и отправки формы. Я хочу показать сообщение «Спасибо» и предотвратить перенаправление страницы на URL-адрес действия, но все равно обрабатывать сервер данных. Во время исследования я думаю, что обратный вызов Jquery звучит правильно, но нужно немного больше, так как примеры, которые я нашел, были повсюду. Может ли кто-нибудь внести свой вклад?Сообщение «success» после формы отправить

$("#emailsignup_form").validate(); 
}); 

$('#submitemail').click(function() { 
    app.ajax.load({ 
     reqName : 'emailSubmit', 
     url: "$httpUrl('Bronto-OptIn')$?email=" + $('#email').val(), 
     selector : '#emailbox', 
     callback: function(responseText, textStatus) { } 
return false; 
    } 
}); 

<form id="emailsignup_form" method="post" action="$httpUrl('Bronto-OptIn', 'fid', 'information')$"> 
<input id="cemail" name="email" size="25" class="required email" /> 
<input class="submit" id="submitemail" type="submit" value="Submit"/> 
</form> 
<div id="emailbox"></div> 
+5

Что вам нужно, это ajax! – adeneo

+0

Создайте cookie в target.php и покажите, есть ли файл cookie, на главной странице –

ответ

0

Предполагая, что вы добавляете div, чтобы показать результат вашего поста

<form id="emailsignup_form" method="post" action=""> 
    <input id="cemail" name="email" size="25" class="required email" /> 
    <input class="submit" id="submitemail" type="submit" value="Submit"/> 
</form> 
<div id="postresult"> 
</div> 

Вы можете оставить свои данные с $.post() как этот

$(function(){ 
    $("form#emailsignup_form").submit(function(e){ 
     e.preventDefault(); 
     $.post(
      "processdata.php", 
      $(this).serialize(), 
      function(data){ 
       //Your code to process returned data goes here 
       $("#postresult").text("Thank you!"); 
      } 
     ); 
    });   
}); 
+0

Здравствуйте, я пытаюсь сделать это с помощью Ajax. Извините, я должен был упомянуть выше. Я редактирую свой код выше, чтобы показать. Я ломаю себе голову, чтобы решить эту проблему в течение нескольких недель! – Jgunzblazin

+1

@Jgunzblazin Ответ показывает именно это. '$ .post' является сокращением ** для функции jQuery ajax **. Вы прочитали ссылку ['$ .post()'] (http://api.jquery.com/jQuery.post/) Я дал ответ вообще? – peterm

+0

Не понимал, что это была ссылка. Чтение сейчас. – Jgunzblazin

0

я смог добиться возвращая успешное сообщение, изменив мой код выше:

$('#emailsignup_form').validate({ 
    rules: { 
     email: { 
      required: true, 
      email: true 
     } 
    }, 
    messages: { 
     email: { 
      required: "this is required", 
      email: "this must be a valid email" 
     } 
    }, 
    submitHandler: function (form) { 
     app.ajax.load({ 
     reqName : 'emailSubmit', 
     url: "$httpUrl('Bronto-OptIn')$?email=" + $('#email').val(), 
     selector : '#emailbox', 
     callback: function(responseText, textStatus) { } 
     }); 
     return false; 
    } 
}); 
}); 

<div id="emailbox"> 
<form id="emailsignup_form" name="emailsignup_form" method="post" action=""> 
<input type="text" name="email" id="email" /> 
<input type="submit" name="submitemail" id="submitemail" value="Submit" /> 
</form> 
</div> 
Смежные вопросы