Snippety se neaktualizují

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
house23
Člen | 17
+
0
-

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
+
0
-

Mas inicializovany nette.ajax pomoci $.nette.init() ?
https://github.com/…ette.ajax.js#…

house23
Člen | 17
+
0
-

Ano je v tom souboru main.js

Obsah main.js

$(function(){
    $.nette.init();
});

Editoval house23 (12. 5. 2015 12:00)

David Matějka
Moderator | 6445
+
0
-

Ajo, nevsim jsem si toho komentare za tim radkem :). Nehlasi developer konzole nejakou chybu?

house23
Člen | 17
+
0
-

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
+
0
-

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 :-/

house23
Člen | 17
+
0
-

Ne komponenta na to vliv evidentně nemá.

David Matějka
Moderator | 6445
+
+2
-

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)

house23
Člen | 17
+
0
-

Skvěle už to funguje. Proč ne dynamické snippety?

David Matějka
Moderator | 6445
+
+1
-

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
+
0
-

Díky :)

house23
Člen | 17
+
0
-

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?