#php #jquery #forms #validation #anchor
#php #jquery #формы #проверка #привязка
Вопрос:
У меня есть список комментариев к данной статье, и у меня есть форма под комментариями, чтобы пользователь мог добавлять свои собственные комментарии.
Я использую php для выполнения некоторой проверки формы.
Это процесс:
- Пользователь заполняет форму (или нет) и нажимает кнопку отправки. страница обновляется.
- PHP проверяет вводимые пользователем данные и либо отправляет комментарии, если ошибок нет, либо генерирует список ошибок.
-
Если ошибки существуют, отобразите ошибки.
Проблема в том, что я хочу, чтобы ошибки отображались под комментариями перед формой, которую он создает, но когда страница обновляется, отображается верхняя часть страницы, и мне нужно, чтобы она сразу переходила к ошибкам и форме (очень похоже на привязку страницы)
Возможно ли это?
Это вызывается после нажатия кнопки отправки
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) amp;amp; 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" );
}
}
}
Комментарии:
1. Используйте встроенную возможность браузера для перехода к идентификатору, если хэш URL совпадает:
example.com#id
перейдет на example.com и переход к элементу с идентификаторомid
Ответ №1:
Дайте форме идентификатор, к которому можно перейти по URL:
<div id="submitComment">
<!-- Comment form here -->
</div>
А затем перенаправляет пользователя обратно на тот же URL-адрес с соответствующим хэш-тегом:
header('Location: http://www.example.com#submitComment');
Комментарии:
1. Он должен: w3.org/TR/html401/struct/links.html#h-12.2.3 . Действительно ли это происходит или нет, это другой вопрос.
Ответ №2:
Найдите свой тег формы, он будет выглядеть примерно так
<form action='yourpage.php'>
Поместите хэш-тег после URL-адреса вместе с привязкой, на которую он перейдет при отправке-
<form action='yourpage.php#commentsform'>
Ответ №3:
Используя привязки страницы, вы можете перенаправить пользователя на любую часть страницы, изменив хэш в URL.
Сделайте так, чтобы форма отправляла пользователя на привязку следующим образом:
<form action='yourpage.php#comments'>
И создайте привязку, в которой вы хотите, чтобы ваш пользователь оказался:
<a name="comments"></a>