IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Cr�er un filtre en javascript


Sujet :

JavaScript

  1. #1
    Membre habitu�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2015
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Juin 2015
    Messages : 6
    Par d�faut Cr�er un filtre en javascript
    Bonjour,

    Je poss�de des produits (array) et je cherche � cr�er un filtre par cat�gorie. Lorsque je clique sur une cat�gorie, je souhaite que les produits correspondant � cette cat�gorie s'affichent.

    Code javascript
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    $(document).ready(function() {
        var $contenu_div = $('#contenu div');
        var page = $('#nav li a:first').text();
     
        $('#nav li a').on('click', function() {
            var url = $(this).attr('href');
     
            var pageDemandee = $(this).text();
     
            if(pageDemandee != page) {
     
                page = pageDemandee;
     
                $.ajax({
                    url: url,
                    cache: false,
                    success: function(html) {
                        $contenu_div.hide().html(html).fadeIn();
                    }
                });
            }
            return false;
        });
    });

    Code PHP (controller) :
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
     
                $selected_category= (isset($_GET['selected_category']) && !empty($_GET['selected_category'])) ? htmlentities($_GET['selected_category']) : false;
     
                filtred_products = fn_get_product_filtred($selected_category);
     
                Registry::get('view')->assign('ajax_filtred_product',  $filtred_products);
     
     
     
            $contenu = Registry::get('view')->fetch('addons/product_filter/views/ajax_filter_products.tpl');
     
            echo $contenu;

    Ici, il faut bien comprendre que la m�thode fetch retourne le code HTML de la vue. C'est l'echo qui affiche les donn�es.

    Vue HTML avec smarty
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
           <div id="nav" class="addon-menu-item">
                         <li class="addon-menu-item active">
                             <a class="active" href="index.php?dispatch=products.filter&selected_category_id={$category.id}">
                                 <div class="ty-product-filters__switch ">
                                        <p>{__("All")|upper}</p>
                                 </div>
                             </a>
                         </li>
     
     
     
     
                         {foreach from=$product_filter_categories key='categories_key' item='category'}
                                <li class="">
                                    <a href="index.php?dispatch=products.filter&selected_category_id={$category.id}">
                                        <div class="ty-product-filters__switch">
                                               <p> {$category.name|upper} </p>
                                        </div>
                                    </a>
                                </li>
                         {/foreach}
                </div>
     
     
    <div id="contenu">
            <div>
                {if $ajax_filtred_product}
                      {include file="blocks/list_templates/products_list.tpl"
                        products=$ajax_filtred_product
                    }
               {/if}
            </div>
        </div>

    Ce code fonctionne. Par contre, le contenu entre les <div> dans la vue est remplac� par une string venant du controller (echo $contenu). Il faut savoir que j'ai plusieurs onglets qui appellent cette vue avec du javascript. Or, comme le <div id="contenu"> de la vue est remplac� par la string du controller, quand je change d'onglet, le contenu li� au code smarty ci-dessus n'est pas charg� (car le code smarty a �t� remplac� par la string du controller).

    Donc, je cherche � conserver le contenu dans la vue HTML. Pour ce faire, je dois faire un script javascript qui filtre les produits par cat�gorie (en gros remplacer le travail du controller PHP) et injecter l'array des produits filtr�s dans la variable smarty ajax_filtred_product. Savez-vous comment effectuer ce script javascript qui trie les produits avec la cat�gorie s�lectionn�e sans passer par le controller ?

    Merci pour votre aide. Je pr�cise qu'on peut utiliser jQuery.

  2. #2
    Expert confirm�
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 681
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 681
    Par d�faut
    je ne suis pas s�r de tout comprendre. est ce qu'on peut voir le site ou alors une photo d'�cran ?
    qu'est ce qui change dans la page quand on clique sur un onglet ?

Discussions similaires

  1. Cr�er des filtres de profile sur eclipse
    Par ouadii dans le forum Eclipse Java
    R�ponses: 0
    Dernier message: 03/10/2007, 13h53
  2. [POO] cr��er un objet en javascript
    Par bulatovic dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 14/03/2007, 19h31
  3. R�ponses: 2
    Dernier message: 07/11/2006, 15h30
  4. Cr�er un fichier en javascript
    Par Taz_8626 dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 31/05/2006, 11h26
  5. cr�er un filtre
    Par cdbaloo dans le forum Access
    R�ponses: 3
    Dernier message: 31/03/2006, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo