Почему AutoScroll перенаправляет на предыдущую страницу

У меня проблема с функцией, которую я только что создал. Я пытаюсь автоматически прокрутить до конкретного пользователя на столе. Когда я выбираю свою кнопку, она прокручивается до пользователя, но затем она перезагружает предыдущую страницу.

Вы должны перейти на xxx.com и затем выбрать меню, которое принимает xxx.com/results_page.php. Отсюда вы выберете другую ссылку, которая приведет вас на xxx.com/results.php. Отсюда вы выберете кнопку автопрокрутки. Кнопка переводит вас в нужное место на странице, а затем перезагружает по адресу xxx.com/results_page.php.

Я скопировал этот скрипт у друга, так что я не совсем уверен, как он работает.
Это моя кнопка, у меня она отключена, так как она сломана.

<tr>
<td colspan=2>
<button onclick="findUser()" title="Sorry, I'm still working  on this." disabled>My Entry</button>
</td>
</tr>

Это функция вверху страницы.

<script type="text/javascript">
function findUser(){
$(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);
}
</script>

Дайте мне знать, что еще я могу дать, чтобы помочь здесь. Я могу настроить тестовую страницу, если это будет необходимо.

Тестовая страница
Testing.daqspickem.com
Логин: Гость
Пасс: Гость

После входа перейдите на testing.daqspickem.com/results.php. Кнопка находится на этой странице.
Страница результатов
Страницы результатов

Этот код — то, где я устанавливаю TD, который я хочу найти.

    switch ($user_names_display)
{
case 1:
echo '      <td>' . trim($tmpUser->firstname . ' ' . $tmpUser->lastname) . '</td>' . "\n";
break;
case 2:
echo '  <td><img src="http://web-answers.org/wp-content/uploads/2019/02/logos/' . trim($tmpUser->template_name) . '.gif" style="opacity: .8; width: 40px; height: 40px; margin-left: 0px; z-index: -1;" />' . trim($tmpUser->userName) . '</td>' . "\n";
break;
default: //3
echo ' <td><img src="http://web-answers.org/wp-content/uploads/2019/02/logos/' . trim($tmpUser->template_name) . '.svg" style="width="15px" height="15px" /><abbrev title="' . trim($tmpUser->userName) . '&#10;' . trim($tmpUser->firstname . ' ' . $tmpUser->lastname) . '">' . substr($tmpUser->userName, 0, 17) . '</abbrev>
</td>' . "\n";
break;
}

0

Решение

Попробуй это:

function findUser(e){
e.preventDefault();
$(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);
}

Это работает, потому что это предотвращает href от выполнения его функциональности по умолчанию.

0

Другие решения

Я думаю, что проблема с этим сценарием,

<script type="text/javascript">
function findUser(){
$(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);
}
</script>

Здесь ваш $_SESSION['loggedInUser'] содержит "Guest" в то время как td вы имеете в виду имеет внутренний HTML "guest"

Это изменение исправит это, но вам нужно будет создать запасной вариант для обработки таких ситуаций, когда пользователь отсутствует в таблице.

0

Я добавил форму вокруг своей кнопки, и она, кажется, устранила проблему. Я был бы открыт для любых других идей, так как это не кажется идеальным. Похоже, Chrome — проблема с обновлением.

      <form id="frmData" onsubmit="return false">
<tr><td colspan = 2 > <button onclick="findUser()" title="Sorry, I'm still working  on this." >My Entry</button></td> </tr></table>
</form>

скрипт

    <script type="text/javascript">
function findUser()
{
$(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);

}
</script>
0