2016-08-16 2 views
0

У меня есть информационный бюллетень, зарегистрированный в загрузочном модуле.Показать сообщение об успешном завершении после отправки формы PHP с использованием AJAX

То, что я пытаюсь достичь, - это когда клиент отправляет свой адрес электронной почты, он должен давать сообщение об успешном завершении в модуле непосредственно под ним на той же странице без перенаправления на новую страницу.

Я новичок в AJAX, поэтому только какое-то направление было бы полезно.

Вот мой HTML код

<form form id="form1" name="form1" method="post" action="process.php"> 
    <div class="input-group"> 
     <input class="btn btn-lg" name="email" id="email" type="email" placeholder="Your Email" required/> 
     <button type="submit" class="button">Submit</button> 
    </div> 
</form> 

И ниже process.php

/* Database config */ 
$db_host = 'localhost'; 
$db_user = 'root'; 
$db_pass = ''; 
$db_database = 'maxipakdb'; 
/* End config */ 

$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_database); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
} 

$email = $_POST['email']; 

// Perform queries 

mysqli_query(
    $mysqli, 
    "INSERT INTO maxipaktable (id,email) VALUES (NULL,'$email')" 
); 

echo $email; 
+2

Возможный дубликат [например JQuery Ajax POST с PHP] (http://stackoverflow.com/questions/5004233/jquery-ajax-post-example-with-php) – Epodax

+0

Вы даже искать Ваш пост название на GOOGLE? – Ivan

ответ

0

Удалить название формы, действие из html.

<form form id="form1"> 
    <div class="input-group"> 
     <input class="btn btn-lg" name="email" id="email" type="email" placeholder="Your Email" required/> 
     <button type="submit" class="button">Submit</button> 
    </div> 
</form> 

<!-- The result of the success message rendered inside this div --> 
<div id="result"></div> 

/* Прикрепление представить обработчик формы */

$(document).ready(function() { 
$("#form1").submit(function(event) { 
     var ajaxRequest; 

     /* Stop form from submitting normally */ 
     event.preventDefault(); 

     /* Clear result div*/ 
     $("#result").html(''); 

     /* Get from elements values */ 
     var values = $(this).serialize(); 

     /* Send the data using post and put the results in a div */ 
     /* I am not aborting previous request because It's an asynchronous request, meaning 
      Once it's sent it's out there. but in case you want to abort it you can do it by 
      abort(). jQuery Ajax methods return an XMLHttpRequest object, so you can just use abort(). */ 
      ajaxRequest= $.ajax({ 
       url: "process.php", 
       type: "post", 
       data: values 
      }); 

      /* request cab be abort by ajaxRequest.abort() */ 

     ajaxRequest.done(function (response, textStatus, jqXHR){ 
       // show successfully for submit message 
       $("#result").html('Submitted successfully'); 
     }); 

     /* On failure of request this function will be called */ 
     ajaxRequest.fail(function(){ 

      // show error 
      $("#result").html('There is error while submit'); 
     }); 

     }); 
0

первым, изменение ваша кнопка представляет <button onclick='javascript:ajaxpost();'>Submit</button>, чтобы предотвратить для вручную представить без AJAX

секунду, положить ваш успех модальной bootstrap с id (например, id = modalnl)

третьих, поставьте коды ниже в ваш файл html

function ajaxpost(){ 
    $.ajax({ 
     url: "process.php", 
     type: 'POST', 
     data: $('#form1').serialize(), 
     error: function(xhr, status, error) { 
      var err = eval("(" + xhr.responseText + ")"); 
      alert(err.Message); 
     }, 
     success: function(data){ 
      $('#modalln').show(); 
     } 
    }); 
} 
0
**Here is code for ajax. Remove action** 
<form form id="form1" name="form1" method="post"> 
    <div class="input-group"> 
     <input class="btn btn-lg" name="email" id="email" type="email" placeholder="Your Email" required/> 
     <button type="submit" class="button" id="contactform">Submit</button> 
    </div> 
</form> 
<script type="text/javascript"> 
$("#form1").submit(function(e) { 
    $.ajax({ 
     type: "POST", 
     url: process.php, 
     data: $("#contactform").serialize(), // serializes the form's elements. 
     success: function(data) 
     { 
      $("#form1").html("<p>Thank you</p>"); 
     } 
     }); 
    e.preventDefault(); // avoid to execute the actual submit of the form. 
}); 
</script> 
Смежные вопросы