提交表单后,滚动到页面上的垂直位置

时间:2016-09-27 11:42:52

标签: php jquery html ajax

我创建了一个简单的html / php表单,我的网站上的访问者可以写下他们的姓名,电子邮件和消息,然后将消息发送到我的电子邮箱。问题是,当他们提交电子邮件时,我的网站会执行完全刷新(看起来像),因此只需重新加载到我的网站顶部。我希望用户在提交后保持相同的滚动位置,以便他们可以立即查看提交是否成功。因此,要么是阻止刷新的解决方案,要么是自动向下滚动到表单的其他解决方案。

你能告诉我这是否可以使用php?或者我是否必须使用一些jquery / ajax解决方案?

以下是我正在使用的代码。我是一个完整的新手,所以请保持温和。

        <form action="" method="post" id="form">
            <div class="contact-info-group">
                <label for="name"><span>Your name</span>
                <input type="text" id="name" name="name" autocomplete="off" value="<?php echo $name; ?>"></label>

                <label for="email"><span>Your email</span>
                <input type="email" id="email" name="email" autocomplete="off"></label>
            </div>
            <label for="message"><span>Your message</span>
            <textarea id="message" name="message"></textarea></label>

            <input id="button1" type="submit" class="button next" name="contact_submit" value="Send message">


        <?php

            // Check for header injections
            function has_header_injection($str) {
                return preg_match("/[\r\n]/", $str);
            }

            if (isset ($_POST['contact_submit'])) {
                $name = trim($_POST['name']);
                $email = trim($_POST['email']);
                $msg = $_POST['message'];

                // Check to see if $name or $email have header injections
                if (has_header_injection($name) || has_header_injection($email)) {
                    die();
                }

                if (!$name || !$email || !$msg) {
                    echo '<div class="contact-warning"><h2>! Error - Please note that all of the above fields are required !</h2></div>';
                    exit;
                }

                // Add the recipient email to a variable
                $to = "email@email.com";

                // Create a subject
                $subject = "Message via website.com - $name";

                // Construct the message
                $message = "Name: $name\r\n";
                $message .= "Email: $email\r\n";
                $message .= "Message: \r\n\r\n$msg";

                // Clean up the message
                $message = wordwrap($message, 72);

                // Set the mail headers into a variable
                $headers = "MIME-Version 1.0\r\n";
                $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
                $headers .= "From: $name <$email> \r\n";
                $headers .= "X-Priority: 1\r\n";
                $headers .= "X-MSMail-Priority: High\r\n\r\n";

                // Send the email
                mail($to, $subject, $message, $headers);

                echo '<div class="contact-warning"><h2>Thank you for your message. We will get back to you shortly.</h2></div>';

            }
        ?>

    </form>

0 个答案:

没有答案