У меня проблема с функцией, которую я только что создал. Я пытаюсь автоматически прокрутить до конкретного пользователя на столе. Когда я выбираю свою кнопку, она прокручивается до пользователя, но затем она перезагружает предыдущую страницу.
Вы должны перейти на 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="https://web-answers.ru/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="https://web-answers.ru/wp-content/uploads/2019/02/logos/' . trim($tmpUser->template_name) . '.svg" style="width="15px" height="15px" /><abbrev title="' . trim($tmpUser->userName) . ' ' . trim($tmpUser->firstname . ' ' . $tmpUser->lastname) . '">' . substr($tmpUser->userName, 0, 17) . '</abbrev>
</td>' . "\n";
break;
}
Попробуй это:
function findUser(e){
e.preventDefault();
$(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);
}
Это работает, потому что это предотвращает href
от выполнения его функциональности по умолчанию.
Я думаю, что проблема с этим сценарием,
<script type="text/javascript">
function findUser(){
$(window).scrollTop($("td:contains('<?php echo $_SESSION['loggedInUser']; ?>'):last").offset().top);
}
</script>
Здесь ваш $_SESSION['loggedInUser']
содержит "Guest"
в то время как td
вы имеете в виду имеет внутренний HTML "guest"
Это изменение исправит это, но вам нужно будет создать запасной вариант для обработки таких ситуаций, когда пользователь отсутствует в таблице.
Я добавил форму вокруг своей кнопки, и она, кажется, устранила проблему. Я был бы открыт для любых других идей, так как это не кажется идеальным. Похоже, 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>