在我的网站上,我有一个带链接的div和一个div,当我点击相应的链接时,我会显示页面的内容。 现在我有一个表单,使用mail()提交邮件数据,并显示如果mail()成功则发送邮件。 但问题是,在提交时,它会发送数据并在窗口中加载页面submit.php。而不是我希望结果只显示在我的内容div中。
我已经浏览了网络以寻找答案并找到了很多解决方案,所有解决方案都采用了不同的方式。
我想知道哪种方法最好?哪种方式最有效?
注意:我得到的解决方案是:
1)进行ajax调用jquery submit form and then show results in an existing div
2)使用javascript Submit form values to a script without loading a new page
发出xmlHTTPheader请求3)使用成功处理程序和javascript show div on form submit with no redirect
4)在php脚本上另一个重定向到网站
答案 0 :(得分:1)
hy Aman ......试试这个......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#bt_sn").click(function(e) {
var to=$("#to").val();
var from=$("#from").val();
var message=$("#message");
//AJAX begins here
$.post("mail.php",{to_rec:to,from_rec:from,message_rec:message},function(data)
{
if(data=="SUC")
{
$("#result").html("Your mail has being sent successfully");
}
if(data=="FAI")
{
$("#result").html("Sending failed");
}
});
});
</script>
</head>
<body>
<input type="text" id="to" />
<input type="text" id="from" />
<textarea id="message">
<button id="bt_sn" >Send</button>
发送
</body>
</html>
现在在php方面...
<?php
$to=$_POST['to_rec'];
$from=$_POST['from_rec'];
$message=$_POST['message_rec'];
// Now use these variables in your mailing section
//Now if mailing is succedd at some part just echo the success or failure
if(mailed)
echo "SUC";
else
echo "FAI"
?>
祝你好运:P:)
答案 1 :(得分:0)
我会选择AJAX,它是最常用的方式,可以在不重新加载页面的情况下向网络服务器发送新请求。
答案 2 :(得分:0)
1),2),3)都是一样的。单词&#39;标题&#39;甚至没有出现在链接2)中。 &#39; AJAX&#39;是XMLHttpRequest的昵称....( a 同步)( ja vascript)( X MLHttpRequest)。
XMLHttpRequest = ajax =所有jQuery的各种制作XMLHttpRequest的方法
异步意味着用户在页面上执行其他操作之前不必等待ajax请求完成。请求将在用户执行其他操作的同时执行。另一方面,如果您让提交通过,则用户无法执行任何操作,直到页面重新加载。
我不明白4)。你的意思是让提交通过,然后重新加载与当前页面完全相同但显示邮件消息的另一页?