Ajax odkazy, načítání stránek
- motorcb
- Člen | 552
Zdravím.
Chtěl bych odkazy v menu načítat do snippetu Ajaxem a měnit URL.
Jak na to? Chtěl bych použít: nette.ajax.js
@layout.latte:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{block title|striptags|upper}Nette Application Skeleton{/block}</title>
</head>
<body>
<ul id="menu">
<li><a href="{link Homepage:default}" class="ajax">1</a></li>
<li><a href="{link Homepage:two}" class="ajax">2</a></li>
<li><a href="{link Homepage:three}" class="ajax">3</a></li>
</ul>
{snippet content}
<div id="content">
{include content}
<div>
{/snippet}
{block scripts}
<script src="{$basePath}/js/jquery.js"></script>
<script src="{$basePath}/js/netteForms.js"></script>
<script src="{$basePath}/js/main.js"></script>
<script src="{$basePath}/js/nette.ajax.js"></script>
<script src="{$basePath}/js/ajax.js"></script>
{/block}
</body>
</html>
Při kliku na položku v menu se posílá ajaxový požadavek. Jenže jak požadavek dostat do {snippet content} a změnit URL?
Děkuji za rady
- greeny
- Člen | 405
Ahoj, přečti si https://doc.nette.org/…ication/ajax#…,
tam je to celkem hezky popsaný ;)
Změnit url umožňuje history.nette.ajax.js
- motorcb
- Člen | 552
greeny:
Díky, ale z https://doc.nette.org/…ication/ajax#… nevyčtu jak odkazu řeknu do jakeho snippetu se má nastavit jeho dokaz.
Když kliknu na <a href=„{link Homepage:two}“ class=„ajax“>2</a> tak bych potřeboval obsah z odkazu nastavit do:
{snippet content}
<div id="content">
{include content}
<div>
{/snippet}
- motorcb
- Člen | 552
sKopheK:
Díky, to vypada funkčně, ale bohužel nefunguje :-(
@layout.latte:
...
{snippet content}
<div id="content">
{include content}
<div>
{/snippet}
...
public function renderThree()
{
if ($this->isAjax())
{
echo "AJAX";
$this->redrawControl('content');
}
else
{
echo "neni AJAX";
}
}
Na pozadí se posílá požadavek: /homepage/three
V jeho response:
AJAX <h1>Congratulations! 3</h1>
{"state":[]}
ale snippet content se nepřekreslí :-(
ajax.js:
$( function() {
$.nette.init();
// And you fly...
alert("I'm flying");
} );
V consoli zadny problem nevidim
- jiri.pudil
- Nette Blogger | 1029
Zkus ten snippet pojmenovat jinak než vkládaný blok. Snippety i bloky jsou interně zpracovávané stejnou metodou, možná se ti nějak přebíjejí.