使用锚点提交到同一页面

时间:2018-01-04 11:38:01

标签: php html forms

我正在尝试理解表单是如何工作的,到目前为止我了解到我可以通过

提交表单并刷新到同一页面
> action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"

然后捕获错误或没有空白输入。

但是,让我们说我在页面中有锚点(换句话说就像#ContactUs一样)如何使用操作刷新页面以到达特定位置而不是返回到页面顶部?< / p>

提前感谢所有人

以下是代码的一部分:

 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
        <h2>SEND US A MESSAGE!</h2>
        <span>We'd be happy to hear from you.</span>
        <input name="contactname" placeholder="Name" type="text" value="<?php echo $contactname;?>"/> <span class="error"> <?php echo $contactnameErr;?></span>
        <input name="contactemail" placeholder="Email" type="text" value="<?php echo $contactemail;?>" /><span class="error"> <?php echo $contactemailErr;?></span>
        <input name="contactphone" placeholder="Phone #" type="text" value="<?php echo $contactphone;?>" /><span class="error"> <?php echo $contactphoneErr;?></span>
        <input name="contactsubject" placeholder="Subject" type="text" value="<?php echo $contactsubject;?>" /><span class="error"> <?php echo $contactsubjectErr;?></span>
        <textarea name="contactmessage" placeholder="Message"><?php echo $contactmessage;?></textarea><span class="error"> <?php echo $contactmessageErr;?></span>
        <input type="submit" name="submit" value="Send" class="contact-button" />
     </form>

2 个答案:

答案 0 :(得分:0)

你可以使用我在下面给出的jQuery

<?php

    if(isset($_POST['submit']))
    {

        //
        //sql query and display
        //

        ?>
        <script>
            $(function() {
                $('html, body').animate({
                    scrollTop: $("#contactus").offset().top
                }, 2000);
             });
        </script>
        <?php

    }

    ?>

答案 1 :(得分:0)

您应该对其进行验证,例如

<?php 
 if(isset($_POST['submit'])){
    //then do something
    header("Location: #contactus");
   }
?>

所以这种方式即使你加载,它也不会给你空,也不会要求你重新提交