我有一個接觸的形式PHP + jQuery的+ HTML.the形式DIV是隱藏在index.html的,直到接觸按鈕presses.Jquery作品,Ajax調用崗位所需的數據到PHP,這相呼應response.The問題是,當PHP相呼應,而不是保持同一頁面上無刷新,瀏覽器重定向到contact.php,其中回聲顯示correctly.I認爲阿賈克斯贏得部分儘管語法在所有教程中都是一樣的,但是不會捕獲服務器的響應。請幫助。 HTML部分:jQuery的AJAX接觸形式重定向到contact.php,而不是捕捉的php回聲和執行sucess功能
HTML
<div id = 'contact_form'>
<div id = 'result'></div>
<form id="contactform" action="js/contact.php" method="POST" enctype="multipart/form-data">
<div class="row">
<input id="name" class="input" name="name" type="text" required = 'true' value="" size="30" placeholder='Nome'/>
</div>
<div class="row">
<input id="email" class="input" name="email" type="text" required = 'true' value="" size="30" placeholder = 'Email'/>
</div>
<div class="row">
<textarea id="message" class="input" name="message" rows="7" cols="50" required = 'true' placeholder = 'Messagio'></textarea>
</div>
<input id="submit_button" class = 'myButton' type="submit" value="Manda messagio" />
</form>
</div>
</div>
JS
$('#submit_btn').click(function(){
var user_name = $("input#name").val();
if (user_name == "") {
$("input#name").focus().addClass('active');
return false;
}
var user_email = $("input#email").val();
if (!$("input#email").val().match(/^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/)) {
$("input#email").focus().addClass('active');
return false;
}
var msg = $("textarea#message").val();
if (message == "") {
$("textarea#message").focus().addClass('active');
return false;
}
var dataString = 'name='+ user_name + '&email=' + user_email +'message = ' + msg;
//alert (dataString);return false;
// Send the request
$.ajax({
type: "POST",
url: "contact.php",
data: dataString,
success: function(d) {
console.log(d);
}
});
return false;
});
PHP
<?php
$toEmail = "[email protected]";
$subject = "dal tuo sito ";
$mailHeaders = "From: " . $_POST["name"] . "<". $_POST["email"] .">\r\n";
if(mail($toEmail,$subject,$_POST["message"], $mailHeaders)) {
echo "Mail Sent";
} else {
echo "Problem in Sending Mail";
}
?>
使用當你的形式包括任何'''元素多部分/形式data'。 –
你確定JS/contact.php是正確的? 「js/...」似乎是錯誤的。反正刪除「行動=‘JS/contact.php’方法=‘POST’」的一部分,則要麼修改類型「提交」到「按鈕」或放e.preventDefault並且如答案建議返回0到提交處理程序下面。 –