如何提交表单但在div中加载php

时间:2013-06-09 11:39:55

标签: javascript jquery html ajax

在我的网站上,我有一个带链接的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脚本上另一个重定向到网站

3 个答案:

答案 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)。你的意思是让提交通过,然后重新加载与当前页面完全相同但显示邮件消息的另一页?