#php #html #ajax
#php #HTML #ajax
Вопрос:
В настоящее время я создаю строку меню для своего школьного проекта, проблема в том, что всякий раз, когда страница перезагружается, она всегда будет перенаправлена на содержимое первого меню, даже если вы находитесь в третьем меню.
HTML-файл: index.php
:
<div id="header">
<ul id="header-link">
<li data-content='Home'>HOME</li>
<li data-content='ContactUs'>Contact Us</li>
<li data-content='Login'>Login</li>
</ul>
</div>
<div id="link-content"></div>
Файл JavaScript: script.js
$(document).ready(function() {
$('li').click(function() {
$.ajax({
type: 'GET',
url: 'Content/' $(this).data('content') '.php',
dataType: 'html',
async: false,
success: function(response) {
$('#link-content').html(response);
}
})
})
});
Комментарии:
1. Вы могли бы поиграть с историей браузера и добавить параметры URL. Они могут быть оценены с помощью js для загрузки правильного содержимого
2. Взгляните на это: developer.mozilla.org/en-US/docs/Web/API/History_API Если вам нужна поддержка IE 9, используйте локальное хранилище или сеансы php
Ответ №1:
Я предлагаю вам установить сеанс или cookie для вашего веб-браузера с текущим выбранным вами меню. После этого вы можете проверить состояние сеанса с текущей активной страницей.
Вот код javascript для настройки сеанса в браузере:
sessionStorage.setItem(‘active_menu’, ‘Your_Current_page’);
Комментарии:
1. Вы можете использовать активный класс для текущего выбранного пункта меню.
2. @PHPGeek конечно, он может использовать active class на вкладке html
Ответ №2:
Я использую ваш код в качестве примера и пытаюсь установить cookie как tabIndex
, и пока вы нажимаете на конкретный файл li
и получаете успешный ответ в AJAX, я просто устанавливаю значение cookie и добавляю class=active
в этот конкретный li
файл.
При обновлении вашей страницы, если найдено значение cookie, просто добавьте class=active
в конкретное li
значение.
Пожалуйста, попробуйте этот код.
index.php
<div id="header">
<ul id="header-link">
<li data-content='Home'>HOME</li>
<li data-content='ContactUs'>Contact Us</li>
<li data-content='Login'>Login</li>
</ul>
</div>
<div id="link-content"></div>
script.js
<script type="text/javascript">
function getCookie(name) {
var value = "; " document.cookie;
var parts = value.split("; " name "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
$(document).ready(function() {
if(getCookie('tabIndex') != '' amp;amp; getCookie('tabIndex') != 'undefined'){
$('#header-link li').each(function(i) {
if($(this).attr('data-content') == getCookie('tabIndex')){
$(this).addClass('active');
}
});
}
$('li').click(function() {
var currentElement = $(this);
$.ajax({
type: 'GET',
url: 'Content/' $(this).data('content') '.php',
dataType: 'html',
async: false,
success: function(response) {
$('#header-link li').removeClass('active');
document.cookie = "tabIndex=" currentElement.attr('data-content');
currentElement.addClass('active');
$('#link-content').html(response);
}
})
})
});
</script>
Комментарии:
1. Полезен ли этот ответ для вас? @enthusiast