首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >页面刷新后移动到网页的一部分

页面刷新后移动到网页的一部分
EN

Stack Overflow用户
提问于 2011-10-16 10:23:56
回答 3查看 2.4K关注 0票数 3

我有一个评论列表为给定的文章,我有一个形式下面的评论,供用户添加自己的评论。

我正在使用php进行一些表单验证。

这是一个过程:

  1. 用户填写表单(或不填写)并点击submit按钮。页面刷新。
  2. PHP验证用户输入,如果没有错误则提交注释,或者生成错误列表。
  3. 如果存在错误,则显示错误。

问题是,我希望将错误显示在表单之前的注释下面,但当它刷新时,页面的顶部就会显示出来,我需要它直接进入错误和表单(就像页面锚)。

这个是可能的吗?

这是在单击提交按钮后调用的。

代码语言:javascript
运行
复制
if(empty($errors)){
        $result = post_comment('event',$event_id, $sendername, $senderemail, $userurl, $comment);
        if ($result == 'Correct') {
            //header('Location: /'.$_SERVER['REQUEST_URI']);
            header('Location: '.$_SERVER['REQUEST_URI']);
        }
        else {
            $send_error = $result;

这是在注释和表单附近,如果存在错误,我想要在其中页面。

代码语言:javascript
运行
复制
// If there was an error sending the email, display the error message
if (isset($send_error)) {
echo "<a name=\"commentsform\"></a>";
echo "There was an error: ".$send_error;
}
/**
* If there are errors and the number of errors is greater than zero,
* display a warning message to the user with a list of errors
*/
if ( isset($errors) && count($errors) > 0 ) {
    echo ( "<h2 class='errorhead'>There has been an error:</h2><p><span class='bold'>You forgot to enter the following field(s)</span></p>" );
    echo ( "<ul id='validation'>\n" );
    foreach ( $errors as $error ) {
        echo ( "<li>".$error."</li>\n" );
    }
echo ( "</ul>\n" );
}
        }
    }
EN

回答 3

Stack Overflow用户

发布于 2011-10-16 10:33:31

给表单一个可以通过URL跳到的ID:

代码语言:javascript
运行
复制
<div id="submitComment">
  <!-- Comment form here -->
</div>

然后使用适当的哈希标记将用户重定向回同一个URL:

代码语言:javascript
运行
复制
header('Location: http://www.example.com#submitComment');
票数 1
EN

Stack Overflow用户

发布于 2011-10-16 10:34:31

找到您的表单标签,它将如下所示

代码语言:javascript
运行
复制
<form action='yourpage.php'>

在URL之后放置一个散列标签,以及它在提交时将到达的锚点-

代码语言:javascript
运行
复制
<form action='yourpage.php#commentsform'>
票数 1
EN

Stack Overflow用户

发布于 2011-10-16 10:58:18

使用页面锚点,您可以通过更改url中的散列将用户跳到页面的任何部分。

使表单将用户发送到锚点如下:

代码语言:javascript
运行
复制
<form action='yourpage.php#comments'>

并在您希望用户结束的地方设置一个锚:

代码语言:javascript
运行
复制
<a name="comments"></a> 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7783685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档