Snippety se neaktualizují
- house23
- Člen | 17
Ahoj všichni, vím že už se to tady řešilo mockrát ale žádné řešení mi nefunguje. Mám formulář s nastavením filtru pomocí kterého chci měnit obsah stránky. Odesláni formuláře mi funguje, snippety se mi vrací ale neaktualizuje se stránka.
Na stránce jsou dvě ajaxové volání, první je pro závislý selectbox, to funguje bez problémů. Když odešlu formulář, snippety mi příjdou v pořádku, ale nevykreslí se.
<script src="{$basePath}/js/jquery-1.11.0.js"></script>
<script src="{$basePath}/js/jquery-ui.min.js"></script>
<script src="{$basePath}/js/main.js"></script> //Tady je nette.init
<script src="{$basePath}/js/nette.ajax.js"></script>
{snippet productsContainer}
{foreach $productsSelect as $product}
{snippet product-$product->product_id}
<div class="col-lg-6 col-md-12">
<article class="col-md-12 product">
<div class="row">
<div class="col-md-12 product-thumbnail">
{if $presenter->productHasImage($product->product_id)}
<img src="<?php echo $presenter->getImageURL($product->image1_id);?>" class="img-responsive img-thumbnail">
{/if}
</div>
<div class="col-md-12 product-details">
{var $unit = $presenter->getProductUnit($product->product_id)}
<h4>{$product->product_title}</h4>
<p class="product-seller">Od <a href="#">Barbora ptáčková</a> </p>
<table class="table-product-info">
<tbody>
<tr>
<td>Dostupné množství: {$presenter->getAvailableAmount($product->product_id)} {$unit}</td>
</tr>
</tbody>
</table>
<div class="product-info-table-border">
<table class="table-product-info">
<tbody>
<tr>
<td>Jakost: {$product->product_quality}</td>
<td class="td-with-splitter">Cena: {$presenter->getProductPrice($product->product_id)} Kč/{$unit}</td>
</tr>
</tbody>
</table>
</div>
<ul class="product-buttons" role="menu">
<li><a href="#" class="btn btn-default">Mám zájem</a> </li>
<li><a n:href="Product:default $product->product_id" class="btn btn-success">Zobrazit</a> </li>
</ul>
</div>
</article>
</div>
{/snippet}
{/foreach}
{/snippet}
public function processSearchForm($form){
$values = $form->getHttpData();
$this->search->setSession($this->getSession());
$this->search->saveSearchSetting($values);
if($this->isAjax()){
$this->invalidateControl('productsContainer');
}
else{
$this->redirect('this');
}
}
public function renderDefault()
{
$this->template->_form = $this['searchForm'];
$this->search->setSession($this->getSession());
$searchQuery = $this->search->getCurrentSearch();
if($searchQuery['SubcategoryID'] == 0){
$categoryID = $searchQuery['CategoryID'];
}
else{
$categoryID = $searchQuery['SubcategoryID'];
}
$productsSelect = $this->search->searchProducts($categoryID, $searchQuery['range'], $searchQuery['lat'], $searchQuery['lng']);
$this->template->productsSelect = $productsSelect;
$this['searchForm']->setDefaults($searchQuery);
}
- David Matějka
- Moderator | 6445
Mas inicializovany nette.ajax pomoci $.nette.init()
?
https://github.com/…ette.ajax.js#…
- David Matějka
- Moderator | 6445
Ajo, nevsim jsem si toho komentare za tim radkem :). Nehlasi developer konzole nejakou chybu?
- house23
- Člen | 17
Jenom ve firefoxu mi blbně funkce init v googleMapApi.js, ale jinde to funguje v pořádku. Nevím jestli by mohla mít ta komponenta GoogleMapApi vliv na vykreslování snippetů.
Ukázka snippetů:
{"state":[],"snippets":{"snippet--product-68":"\n <div class=\"col-lg-6 col-md-12\">\n <article class=\"col-md-12 product\">\n <div class=\"row\">\n <div class=\"col-md-12 product-thumbnail\">\n <img src=\"../uploads/Sample09.jpg\" class=\"img-responsive img-thumbnail\">\n </div>\n <div class=\"col-md-12 product-details\">\n <h4>Český česnek</h4>\n <p class=\"product-seller\">Od <a href=\"#\">Barbora ptáčková</a> </p>\n <table class=\"table-product-info\">\n <tbody>\n <tr>\n <td>Dostupné množství: 10 Kg</td>\n </tr>\n </tbody>\n </table>\n <div class=\"product-info-table-border\">\n <table class=\"table-product-info\">\n <tbody>\n <tr>\n <td>Jakost: A</td>\n <td class=\"td-with-splitter\">Cena: 99 Kč/Kg</td>\n </tr>\n </tbody>\n </table>\n </div>\n <ul class=\"product-buttons\" role=\"menu\">\n <li><a href=\"#\" class=\"btn btn-default\">Mám zájem</a> </li>\n <li><a class=\"btn btn-success\" href=\"/bp-potravinov-port-l/www/product/?productID=68\">Zobrazit</a> </li>\n </ul>\n </div>\n </article>\n </div>\n","snippet--product-67":"\n <div class=\"col-lg-6 col-md-12\">\n <article class=\"col-md-12 product\">\n <div class=\"row\">\n <div class=\"col-md-12 product-thumbnail\">\n <img src=\"../uploads/Sample15.jpg\" class=\"img-responsive img-thumbnail\">\n </div>\n <div class=\"col-md-12 product-details\">\n <h4>Cibule kuchyňská bílá</h4>\n <p class=\"product-seller\">Od <a href=\"#\">Barbora ptáčková</a> </p>\n <table class=\"table-product-info\">\n <tbody>\n <tr>\n <td>Dostupné množství: 30 Kg</td>\n </tr>\n </tbody>\n </table>\n <div class=\"product-info-table-border\">\n <table class=\"table-product-info\">\n <tbody>\n <tr>\n <td>Jakost: B</td>\n <td class=\"td-with-splitter\">Cena: 40 Kč/Kg</td>\n </tr>\n </tbody>\n </table>\n </div>\n <ul class=\"product-buttons\" role=\"menu\">\n <li><a href=\"#\" class=\"btn btn-default\">Mám zájem</a> </li>\n <li><a class=\"btn btn-success\" href=\"/bp-potravinov-port-l/www/product/?productID=67\">Zobrazit</a> </li>\n </ul>\n </div>\n </article>\n </div>\n","snippet--product-69":"\n <div class=\"col-lg-6 col-md-12\">\n <article class=\"col-md-12 product\">\n <div class=\"row\">\n <div class=\"col-md-12 product-thumbnail\">\n <img src=\"../uploads/Sample02.jpg\" class=\"img-responsive img-thumbnail\">\n </div>\n <div class=\"col-md-12 product-details\">\n <h4>Cherry oválná rajčátka</h4>\n <p class=\"product-seller\">Od <a href=\"#\">Barbora ptáčková</a> </p>\n <table class=\"table-product-info\">\n <tbody>\n <tr>\n <td>Dostupné množství: 100 ks</td>\n </tr>\n </tbody>\n </table>\n <div class=\"product-info-table-border\">\n <table class=\"table-product-info\">\n <tbody>\n <tr>\n <td>Jakost: A</td>\n <td class=\"td-with-splitter\">Cena: 50 Kč/ks</td>\n </tr>\n </tbody>\n </table>\n </div>\n <ul class=\"product-buttons\" role=\"menu\">\n <li><a href=\"#\" class=\"btn btn-default\">Mám zájem</a> </li>\n <li><a class=\"btn btn-success\" href=\"/bp-potravinov-port-l/www/product/?productID=69\">Zobrazit</a> </li>\n </ul>\n </div>\n </article>\n </div>\n"}}
- Oli
- Člen | 1215
Ta komponenta by na to vliv mít neměla. Nezaznamenal jsem s tím nikdy problém. Ale pro jistotu ji zkus na chvilku zakomentovat ať máš jistotu. To by byla fakt velká chyba, kdyby ta extension blokovala snippety.
O tý chybě ve firefoxu vím jen jsem se k tomu ještě nedostal. Snad dneska :-/
- David Matějka
- Moderator | 6445
Jo, uz to asi vidim. Smaz ty dynamicky snippety, takhle to s nima fungovat nebude. (nebo pridej jeste jeden snippet, ktery bude obalovat ten vnejsi snippet)
- David Matějka
- Moderator | 6445
Dynamicke snippety slouzeji k prekresleni napriklad konkretniho produktu, tedy ze se v tom zaznamu neco zmeni a ty chces prekreslit jen ten jeden konkretni DIV s produktem. Tady ale chces prekreslit cely vypis. A tim, ze si pouzil dynamicke snippety, si nette mysli, ze ty produkty ve vypise jiz existuji a ty je chces pouze prekreslit.
- house23
- Člen | 17
Ještě bych se chtěl zeptat na default value v závislém selectu. Mám formulář kde se podkategorie načítá ajaxem podle kategorie. Když chci ale nastavit výchozí hodnoty tak mi to spadne, protože podkategorie nemá patřičnou hodnotu, kterou by měla nastavit.
Hledal jsem na foru a všude, ale nic sympatického jsem nenašel, nějaký tip?