2015-01-30 4 views
0

Как я могу запустить эту контактную форму без перезагрузки или изменения страницы на представить? Мне сказали использовать ajax, но я не знаю, с чего начать.Сложное Контактный формуляр Отправить (АЯКС помощь)

Я хотел бы иметь возможность вывода изображения ('успешно отправлено! Спасибо.) На моем index.html внутри DIV, например.

<?php if (isset($_POST["contact"])){ 

$to = '[email protected]';  //Contact Email 

$from = $_POST["email"]; 
$name = $_POST["name"]; 
$message = $_POST["message"]; 

// subject 
$subject = 'New message from '.$name; 


// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= 'To: ' .$to. "\r\n"; 
$headers .= 'From: '.$from . "\r\n"; 

// Mail it 
if(mail($to, $subject, $message, $headers)){ 
    echo "Successfully sent! Thank you."; 
} else { 
    echo "Oops! Failed to send your message"; 
} 

} 

?> 
+0

Вы можете как начать с www.w3schools.com/php/php_ajax_php.asp –

+0

Вот действительно хороший источник: https://developer.mozilla.org/en-US/docs/AJAX Мне не нравятся W3Schools, MDN is в значительной степени «go-to» для большинства разработчиков. В любом случае, что происходит, так это то, что через JavaScript вы отправитесь на страницу и получите ответ. – jkinz

ответ

0

Попробуйте следующие коды =)

HTML

<form id="contactform" name="contactform" method="post" action="email.php"> 
<div> 
    <input type="text" name="name"> 
</div> 
<div> 
    <input type="email" name="email"> 
</div> 
<div> 
    <input type="text" name="subject"> 
</div> 
<div> 
    <textarea name="message"></textarea> 
</div> 
    <button type="submit"> 
     Send Message 
    </button> 
</form> 

Аякса

var form = $('#contactform'); 
form.submit(function(event){ 
    event.preventDefault(); 
    var form_status = $('<div></div>'); 
    $.ajax({ 
     type:"post", 
     url: $(this).attr('action'), 
     data: $(this).serialize(), 
     beforeSend: function(){ 
      form.prepend(form_status.html('<p>Sending</p>').fadeIn()); 
     } 
    }).done(function(data){ 
     form_status.html('<p>Done</p>').delay(3000).fadeOut(); 
    }); 
}); 

email.php

<?php 

$to = '[email protected]';  //Contact Email 

$from = $_POST["email"]; 
$name = $_POST["name"]; 
$message = $_POST["message"]; 

// subject 
$subject = 'New message from '.$name; 


// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= 'To: ' .$to. "\r\n"; 
$headers .= 'From: '.$from . "\r\n"; 

// Mail it 
mail($to, $subject, $message, $headers); 

?> 
+0

Как поместить div в свой html, чтобы вызвать php-ответ? Прямо сейчас, когда я нажимаю кнопку «Отправить», открывается пустая страница. – user4509189

+0

Каков адрес пустой страницы? – user2094220

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