Bonjour,

Lorsqu'on va sur leboncoin, on voit qu'ils y a 3 onglets.. "toutes" / "particuliers" / "professionnels"..;

Comment ça fonctionne car la page n'est pas rechargée et la pagination s'adapte si on est sur "particuliers" ou "professionnels"...

Ca fait comme s'il y a vait une double pagination

Est ce possible de faire un tel systeme sur cakePHP et si "oui" comment ?

3 réponses


Sans m'avancer je dirait que c'est peut être de l'ajax. Mais je ne suis pas un spécialiste.

siriu
Auteur

Bonjour,

Oui, il y a de l'ajax mais malgré tout je ne comprend pas comment ça fonctionne... la requete SQL ne doit pas tourner à chaque appel de page sinon, le site ne serait pas aussi rapide... je ne vois pas comment faire ça avec cake

Chez moi ça ne semble même pas être de l'Ajax, la page se recharge quand je clique sur ces onglets là.
Si tu veux un système semblable tu dois avoir un parametre lors de l'appel de ta fonction qu'on appelerait par exemple 'type'. Lorsque tu affiches la page, si type n'est pas defini, tu affiches tous les articles, si type est a 'pro', tu affiches les articles de pro, et particulier ceux de particulier.

Pour rechercher dans un modèle Article par exemple ça te donnerait (je ne fais pas de vérification spéciales ici, c'est le code vraiment minimum) :

public function search($type=null) 
{
    if(!$type) 
    {
        $articles = $this->Article->find('all);
    } else {
        $articles = $this->Article->find('all',array(
            'conditions' => array('type' => 'type'),
        ));
    }
    $this->set('articles',$articles);
}

Et dans ta vue il te suffit d'afficher les articles (le mieux serait de faire un Paginate au lieu d'un find quand même). Et dans tes onglets tu mets des liens en précisant le type dedans.