如何在提交后将消息显示在弹出窗口内而不是在其他页面上

时间:2013-04-14 16:37:15

标签: php jquery html css

我有一个联系表单,我正在使用Jquery .load将php文件导入到导航将在的任何页面中。以下示例。

http://madaxedesign.co.uk/dev/index.html

我知道需要更改操作表单,以便将其连接到正确的位置。但如果它在不同的页面上并导入到页面中,我该怎么做呢?因为此时它被设置为contact.php但在提交之后它将转到该页面并且不会将消息导入弹出窗口。所以我真的需要它作为文件名,取决于它所在的页面。

所以我想问题是如何在提交后将消息显示在弹出窗口而不是在其他页面上?

代码:

        <?php
        $your_email = "maxlynn@madaxedesign.co.uk";
        $subject = "Email From Madaxe";
        $empty_fields_message = "<p>Please go back and complete all the fields in the form.</p>";
        $thankyou_message = "<p>Thank you. Your message has been sent. We Will reply as soon as possible.</p>";

        $name = stripslashes($_POST['txtName']);
        $email = stripslashes($_POST['txtEmail']);
        $message = stripslashes($_POST['txtMessage']);

        if (!isset($_POST['txtName'])) {

        ?>
        <form method="post" action="contact.php">
            <div id="NameEmail"> 
                <div>
                    <label for="txtName">Name*</label> 
                    <input type="text" title="Enter your name" name="txtName" />
                </div> 
                <div>
                    <label for="txtEmail">Email*</label> 
                    <input  type="text" title="Enter your email address" name="txtEmail" />
                </div> 
            </div>
            <div id="MessageSubmit">
                <div> 
                    <textarea maxlength="1200" title="Enter your message" name="txtMessage"></textarea> 
                    <label for="txtMessage">Message</label>
                </div>
                <div> 
                    <input type="submit" value="Submit" /></label>
                </div>
            </div> 
        </form> 
        <?php

        }

        elseif (empty($name) || empty($email) || empty($message)) {

        echo $empty_fields_message;

        }

        else {

            $referer = $_SERVER['HTTP_REFERER'];
            $this_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
    if ($referer != $this_url) {
    echo "You do not have permission to use this script from another URL, nice hacking     attempt ;p.";
    exit;
            }

        mail($your_email, $subject, $message, "From: $name <$email>");

        echo $thankyou_message;

            }

?>

2 个答案:

答案 0 :(得分:0)

您应该使用ajax,在没有刷新页面的情况下发送电子邮件。

答案 1 :(得分:0)

您想要做的只是在javascript中,这是一种由浏览器执行的语言。 Javascript self是一种令人讨厌的语言,但有很多扩展/插件可以让它像jQuery一样容易。我建议你学习这门语言,你会在网页开发中找到一个新的世界;-)。例如:http://learn.jquery.com/

给你的表单一个id: <form method="post" id="test-form" action="contact.php">  所以你可以用jquery

来引用它

现在您可以使用jQuery捕获表单提交操作:

$('#test-form').submit(function() {
//send your data to your server and get the html data
  $.post('contact.php', $(this).serialize(), function (data){
 //here you can add the (html)data returned by the action to your page.
   $('body').append(data); //append data to body of html page
 })
 return false; //stop form from going to the next page
});

此代码基于javascript插件:jQuery,如果你想在你的页面上做任何动态而不重新加载页面,你需要使用javascript。