Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: постраничная навигация без перезагрузки всей страницы..
$(document).on('click','на что нажимаем',function()
var url = $(this).attr('href');
$.ajax({
url: url,
success:function(data){
$('куда ответ вставлем').html(data);
}
});
// меняется ссылка
if(url != window.location){
window.history.pushState(null,null, url);
}
// Предотвращаем дефолтное поведение
returnfalse;
})
а если без смены урла то просто вписывайте в нужное место, без if(url != window.location...
может это поможет
у меня есть один код... но я не знаю как его дописать.... (Добавление)
Вот код.
.a = контент
.b = контент
.nav_link = кнопка переключения страницы навигации.
в данном случае при нажатии на кнопку с классом nav_link, происходит обновление контента там, где есть классы .a и .b но мне надо чтобы обновлялся еще и сам .nav_link... если делать его в блоке с контентом, то после второго нажатия обновляется страница...
Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011 Откуда: Пружаны Бресткая обл. Беларусь
Помог: 2 раз(а)
в смысле "после второго нажатия обновляется страница" ?
не видно/не понял откуда url берется.
вобщем если контейнер с кнопками навигации то у них data или что там есть, если ссылки то атрибут хреф, а тк знаешь на какую страницу переходишь то перепиши яваскриптом эти параметры.
или : 12345... нажимаем 2 => убери 1 и добавь 6
если в отдельном блоке, то возможно вернуть строку данных с любым разделителем контент*страницы, разбить и вставить части куда надо.
и по моему это короче
var url = $(this).attr('href');// или чтото там ещё
$.ajax({
url: url,
success:function(data){
//разобъем data по разделителю
//код...
$('.b').html(data[0]);// или куда пишем
$('.nav_link').html(data[1]);//или блок
}
});
// Предотвращаем дефолтное поведение
returnfalse;
})
сашаяц
Отправлено: 24 Сентября, 2015 - 10:53:29
Новичок
Покинул форум
Сообщений всего: 15
Дата рег-ции: Авг. 2015
Помог: 0 раз(а)
broshurkaplus пишет:
в смысле "после второго нажатия обновляется страница" ?
не видно/не понял откуда url берется.
вобщем если контейнер с кнопками навигации то у них data или что там есть, если ссылки то атрибут хреф, а тк знаешь на какую страницу переходишь то перепиши яваскриптом эти параметры.
или : 12345... нажимаем 2 => убери 1 и добавь 6
если в отдельном блоке, то возможно вернуть строку данных с любым разделителем контент*страницы, разбить и вставить части куда надо.
и по моему это короче
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/
Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011 Откуда: Пружаны Бресткая обл. Беларусь
Помог: 2 раз(а)
если уже определил переменную то url: url,
да напиши для проверки в обработчике
<?php
echo 'ok';
?>
если урл существует то должно работать, поставьте ссылку от корня
и replaceWith помоему заменяет, те вы хотите заменить на чтото, а html пишет html в указанный элемент
попробуте
сашаяц
Отправлено: 25 Сентября, 2015 - 09:13:27
Новичок
Покинул форум
Сообщений всего: 15
Дата рег-ции: Авг. 2015
Помог: 0 раз(а)
broshurkaplus пишет:
если уже определил переменную то url: url,
да напиши для проверки в обработчике
<?php
echo 'ok';
?>
если урл существует то должно работать, поставьте ссылку от корня
и replaceWith помоему заменяет, те вы хотите заменить на чтото, а html пишет html в указанный элемент
попробуте
работает... почти. изчезает блок content. не обновляется, а изчезает... точнее все его содержимое.. и заменяется все символом < или !
Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011 Откуда: Пружаны Бресткая обл. Беларусь
Помог: 2 раз(а)
гдето ошибки вывода/синтаксиса, посмотрите в браузере как выглядит то что вы печатаете
вывод как пример
сразу в массив
1 элемент <div>какойто html<div>
2 <a class="nav_link">1</a><a class="nav_link">2</a>
или уж проще
<div class="content>*<a class="nav_link">1</a><a class="nav_link">2</a> и тд
разбиваете по *
1 пишите в $('.content').html(data[0]);
2 пишите в $('туда где ссвлки стоят').html(data[1]);
пробуйте на простом, потом добавите функционал
сашаяц пишет:
точнее все его содержимое.. и заменяется все символом < или !
ну значит урл вам возвращает на печать < или !
сашаяц
Отправлено: 25 Сентября, 2015 - 22:20:40
Новичок
Покинул форум
Сообщений всего: 15
Дата рег-ции: Авг. 2015
Помог: 0 раз(а)
broshurkaplus пишет:
гдето ошибки вывода/синтаксиса, посмотрите в браузере как выглядит то что вы печатаете
вывод как пример
сразу в массив
1 элемент <div>какойто html<div>
2 <a class="nav_link">1</a><a class="nav_link">2</a>
или уж проще
<div class="content>*<a class="nav_link">1</a><a class="nav_link">2</a> и тд
разбиваете по *
1 пишите в $('.content').html(data[0]);
2 пишите в $('туда где ссвлки стоят').html(data[1]);
пробуйте на простом, потом добавите функционал
сашаяц пишет:
точнее все его содержимое.. и заменяется все символом < или !
ну значит урл вам возвращает на печать < или !
я нашел этот код.. и с ним все работает на ура.... только вот.. обновлять надо полностью все. ибо если в каком то диве, то подгружается абсолютно весь сайт в диве как будто 2 сайта в одном окне.
// Добавление слушателя события popstate для обработки браузере кнопку "назад"
window.addEventListener("popstate",function(e){
// Получить значение состояния с использованием электронного.государство
getContent(location.pathname,false);
});
function getContent(url, addEntry){
$.get(url)
.done(function( data ){
// Updating Content on Page
$('body').html(data);
if(addEntry ==true){
// Add History Entry using pushState
history.pushState(null,null, url);
}
});
};
broshurkaplus
Отправлено: 25 Сентября, 2015 - 22:40:44
Посетитель
Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011 Откуда: Пружаны Бресткая обл. Беларусь
Помог: 2 раз(а)
так тут же
$('body').html(data);
он и заменяте все в body
вы же хотите заменить содержимое блока с классом content
может у вас по уелевому урлу страница целиком формируется?
о вы уже код в 1 пост кинули, посмотрим...
у вас home() возвращает массив
нужно его в представлении разобрать и вернуть уже с html, который впишется в нужный див
$('.content').html(data);
проверьте - просто впишите в отдельный файл:
подключитесь к базе
$aaa='fffffffffffffffff';
echo $aaa;
и отправьте на этот урл в итоге в .content впишется 'fffffffffffffffff'
Покинул форум
Сообщений всего: 15
Дата рег-ции: Авг. 2015
Помог: 0 раз(а)
broshurkaplus пишет:
так тут же
$('body').html(data);
он и заменяте все в body
вы же хотите заменить содержимое блока с классом content
может у вас по уелевому урлу страница целиком формируется?
о вы уже код в 1 пост кинули, посмотрим...
у вас home() возвращает массив
нужно его в представлении разобрать и вернуть уже с html, который впишется в нужный див
$('.content').html(data);
проверьте - просто впишите в отдельный файл:
подключитесь к базе
$aaa='fffffffffffffffff';
echo $aaa;
и отправьте на этот урл в итоге в .content впишется 'fffffffffffffffff'
с этим я уже разобрался... теперь новая проблема... title.. как моем последнем коде сделать, чтобы еще и title обновлялся? работает все... но title обновляется если перезагрузить страницу на прямую... даже url вносится в адресную строку..
broshurkaplus
Отправлено: 25 Сентября, 2015 - 23:19:44
Посетитель
Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011 Откуда: Пружаны Бресткая обл. Беларусь
пробуйте, но вроде как title - этот параметр в настоящее время не используется основными браузерами. Попробуйте менять по другому:
вернули массив страница, меню, титл
чисто яваскрипт... добавьте
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.