[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ссылки
Lightt
Подскажите как быть.

Есть сайт в формате

www.site.ru/#1
www.site.ru/#2
www.site.ru/#3

При загрузке все данные уже есть. И обновлять ничего не нужно.

Все это выводится вот так, что дает мне 10 ссылок

<? $col=0; while ($col>10){?>
<a href="#<?=$col;?>">
<?$col++;}?>


Но теперь мне нужно привести их к совершенно другому формату.
www.site.ru/1/
www.site.ru?1

Но меняя код, получается, что создается новая страница, и происходит обновление, что в итоге получается в два раза дольше.
Игорь_Vasinsky
Цитата
www.site.ru/#1

это вид www.site.ru/index.php#1

это якорь - который покажет браузеру - на участок страницы - до которого нужно сделать прокрутку


Цитата
www.site.ru/1/

это может быть и
www.site.ru/index.php?r=1
www.site.ru/index.php?a=1

да что угодно

может даже тупо в папки разложены index.php


это ЧПУ - mod_rewrite apache


и по этому - я не понял - что тебе надо? это разные вещи.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Lightt
Игорь_Vasinsky
Сам не знаю как объяснить.

Наверное, как то так)

Сейчас все работает на якорях.
С помощью ЧПУ я могу превратить якоря, в ссылку вида www.site.ru/1/ ?
Но что бы при клике, функционал остался тот же.
Т.е. не было бы перехода на новую страницу.
Игорь_Vasinsky
ну вот смотри - материала много -

https://www.google.ru/search?q=%D0%B0%D0%BD...ewrite+htaccess

почитай, попробуй. там regexp в htaccess

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Lightt
Игорь_Vasinsky
Кажется это немного не то, что я хочу, поправьте если не прав)

Сейчас пришло более осознанное понимание того, что мне нужно.


Если я пишу такой код, то в браузер подставляются якоря, и ссылка не обновляется
<? $col=0; while ($col<10){?>
<a href="#<?=$col;?>">link <?=$col;?> </a><br />
<?$col++;}?>

Если же # заменить на ? то происходит перезагрузка страницы
<? $col=0; while ($col<10){?>
<a href="?<?=$col;?>">link <?=$col;?> </a><br />
<?$col++;}?>

Вопрос теперь в том, как можно сделать ссылку с вопросом, но не обновлять страницу?
johniek_comp
Js в помощь. Не понятно что тс хочет

_____________
user posted image
Lightt
johniek_comp
Хочу что бы при клике по ссылкам не происходило обновления страницы
<a href="?1">link 1</a>
<a href="?2">link 2</a>
kamchatniyoleg
ТС попробуй поиграться с .htaccess + регулярка . Нужно routing настроить .
Игорь_Vasinsky
смотри как это работает

# - якорь - он указывает на ту же страницу, НО - на конкретную её часть по вертикали - поэтому браузер не обновляет страницу - а пытается найти на ней якорь

якорь вида

<a name="#1"></a>


если же ты пишешь ? - это начало GET параматров урл - хоть страница одна и та же, но браузер открывает её по новой.

если ты укажешь ?

то напиши в коде
var_dump($_GET);


и увидишь, что появились пустые элементы массива, т.к. параметры задаются по шаблону

page.php?param1=val1
page.php?param1=val1&param2=val2
page.php?param1=val1&param2=val2&param3=val3

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Lightt
Игорь_Vasinsky
Я это понимаю, это я и пытался обойти)
Нашел вот такой код, как раз то что мне нужно, но он не работает при обновлении.

<html>
<head>
<title></title>
</head>
<body>
<?
$col=0; while ($col<10){?>
<a
href="/<?=$col;?>/" onclick="followLink(event, this)">link <?=$col;?> </a><br />
<?
$col++;}?>
<script
type="text/javascript">

function
followLink(event, link)
{
var nameLink = link.innerHTML;
uploadContent(link.href);
history.pushState({title:nameLink, href:link.href}, null, link.href);
updateTitle(nameLink);
event.preventDefault();
}

function updateTitle(title)
{
var elm = document.getElementsByTagName('title')[0];
elm.innerHTML = title;
}

function uploadContent(link)
{
//тут реализуем загрузку части страницы с помощью AJAX
}

window.addEventListener("popstate", function(e) {
uploadContent(e.state.href);
updateTitle(e.state.title);
}, false );
</script>
</body>
</html>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.