我不懂PHP。
我不希望用户在发送表单后转到http://www.example.com/feedback-thanks.html
。我想要的是发送按钮下面的文字或任何而不刷新页面。
我删除了header( "Location: http://www.example.com/feedback-thanks.html" );
但我没有收到电子邮件,用户被重定向到feedback.php ...... :(
HTML
<form method="post" action="feedback.php">
<input name="email" type="email"/>
<textarea name="message" id="feedback-textarea" autofocus="autofocus" required="required" ></textarea>
<button type="submit" id="feedback-button-send">send</button>
</form>
feedback.php
<?php
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
mail( "abcde@gmail.com", "Subject Here",
$message, "From: $email" );
header( "Location: http://www.example.com/feedback-thanks.html" );
?>
答案 0 :(得分:8)
您必须使用$.ajax()
这是我在其中一个应用中使用的
$('#submitSearch').click(function() {
var formData = {
searchData: $('#searchData').val(),
};
$.ajax({
url: siteUrl + 'fetch/search',
type: "POST",
data: formData,
cache: true,
beforeSend:function(){
jQuery('#main').html('<div class="loading"><img src="' + siteUrl + 'resources/imgs/ajax-loader.gif" alt="Loading..." /></div>');
},
success: function(data) {
jQuery('#main').empty();
jQuery('#main').append(data);
},
error:function(x,e){
if(x.status==0){
alert('You are offline!!\n Please Check Your Network.');
}else if(x.status==404){
alert('Requested URL not found.');
}else if(x.status==500){
alert('Internel Server Error.');
}else if(e=='parsererror'){
alert('Error.\nParsing JSON Request failed.');
}else if(e=='timeout'){
alert('Request Time out.');
}else {
alert('Unknow Error.\n'+x.responseText);
}
}
});
return false;
});
答案 1 :(得分:0)
我建议使用像jQuery这样的Javascript框架并使用它的AJAX函数。如果您使用Google,可以在互联网上找到很多教程。
开始答案 2 :(得分:0)
可行性 - 以任何形式使用ajax - jQuery,plain等...见Google
posibility - 使用name =“sender”创建隐藏的iframe并使用表单目标属性(我不确定它是否有效,但它可以在没有javascript的情况下工作)
答案 3 :(得分:0)
如果你想要我想要的东西,只需看一下本教程(带演示)
http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/