Переход на часть веб-страницы после обновления страницы - PullRequest
2 голосов
/ 16 октября 2011

У меня есть список комментариев для данной статьи, и у меня есть форма под комментариями для пользователя, чтобы добавить свои собственные комментарии.

Я использую php для проверки формы.

Это процесс:

  1. Пользователь заполняет форму (или нет) и нажимает кнопку отправки.страница обновляется.
  2. PHP проверяет вводимые пользователем данные и либо отправляет комментарии, если ошибок нет, либо генерирует список ошибок.
  3. Если ошибки существуют, отображаются ошибки.

    проблема в том, что я хочу, чтобы ошибки отображались под комментариями перед формой, которую он делает, но когда обновляется эпаг, отображается верхняя часть страницы, и мне нужно, чтобы она шла прямо к ошибкам и форме (во многом как привязка страницы)

Возможно ли это?

Вызывается после нажатия кнопки отправки

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;

, и это рядом с комментариями и формой, где яхотите перейти на страницу, если есть ошибки

// 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" );
}
        }
    }

Ответы [ 3 ]

1 голос
/ 16 октября 2011

Найдите тэг формы, он будет выглядеть примерно так

<form action='yourpage.php'>

Поместите хеш-тег после URL вместе с привязкой, на которую он перейдет после отправки-

<form action='yourpage.php#commentsform'>
1 голос
/ 16 октября 2011

Используя якоря страницы, вы можете перейти к любой части страницы, изменив хеш в URL.

Сделайте так, чтобы форма отправляла пользователя на привязку следующим образом:

<form action='yourpage.php#comments'>

И сделайте привязку, где вы хотите, чтобы ваш пользователь закончил:

<a name="comments"></a> 
1 голос
/ 16 октября 2011

Дайте форме идентификатор, к которому можно перейти через URL:

<div id="submitComment">
  <!-- Comment form here -->
</div>

, а затем перенаправьте пользователя обратно на тот же URL с соответствующим хеш-тегом:

header('Location: http://www.example.com#submitComment');
...