Bonsoir

Ce que je veux

Je suis novice sous cakephp et j'aimerais savoir comment indexer des personnes par la première lettre de leur nom et faire un sous sommaire qui va de A-Z. Et quand je clique sur la lettre A j'ai la liste de toutes les personnes qui ont leur nom qui commence par la lettre A. Faut il faire une seconde méthode view et un nouveau fichier viw.ctp ? merci =)

13 réponses


Kelkin
Réponse acceptée

Et bien c'est plus simple de le récupérer en SQL je pense

bobazaza
Auteur

Bonjour j'ai fait ceci cependant je bloque car avec les foreach j'affiche tout et j'aimerais afficher que la personne qui commence par la même lettre

quelqu'un aurait une soluce ? merci =)

<body>

<div class="row">
<?php

    $tab = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
    foreach($p as $pers){
        foreach($tab as $t){
            if(substr($pers['Personne']['nom'],0,1) == $t){
                echo $this->Html->link(ucfirst($t),array('controller' => 'personnes', 'action' => 'index',$pers['Personne']['nom']));
?>
        <?php $modifier = $this->Html->link('Modifier',array('action' => 'modif', $pers['Personne']['id'])); ?>
        <?php $supprimer = $this->Form->postLink('supprimer',array('action'=>'delete',$pers['Personne']['id']),array('confirm',array('êtesvous sur?',$pers['Personne']['nom']))); ?>

                          <div class="col-sm-6 col-md-3" >
                            <div class="thumbnail">
                                    <?php echo  $this->Html->image($pers['Personne']['photo']);?>
                              <div class="caption">
                                <h3><?php echo ucfirst($pers['Personne']['prenom'])." ".ucfirst($pers['Personne']['nom']); ?></h3>
                                <p><button class="btn btn-primary" role="button">
                                                        <?php echo $this->Html->link('visiter',array('controller' => 'personnes', 'action' => 'view', $pers['Personne']['id'])); ?>
                                                </button>
                                                <a href="#" class="btn btn-default" role="button">
                                                    Button
                                                </a>
                                        </p>
                              </div>
                            </div>
                            </div>
<?php
    }else if(substr($pers['Personne']['nom'],0,1) != $t) {
            echo "";
    }

}
}
?>
</div>

<?php $boutonAjouter = $this->Html->link('Ajouter une personne',array('controller'=>'personnes','action'=>'ajout'));
                echo $boutonAjouter;
?>
bobazaza
Auteur

il y a quelqu'un ??

Ton sujet a à peine été poster, attend un peu

bobazaza
Auteur

Kelkin vous n'auriez pas une idée ? Je ne m'en sors pas ^^

Non, je suis désolé. Tu as étais voir les tuto sur cakePHP ?

bobazaza
Auteur

oui mais il n'y a pas ce que je veux :/ pourtant ça serait bien de faire un tuto dessus ^^

Bonjour, je sais pas si j'ai bien compris, mais lorsque je veux faire un classement comme tu le souhaites j'y vais de cette façon en php :

<?php
    $array = ['Alexandre', 'Alfred', 'Bruce', 'Barbara', 'Bob', 'Jim'];
    $previous = null;
    foreach($array as $value) {
        $first = substr($value, 0, 1);
        if($previous !== $first) echo '<div><a href="#" class="tab">'.$first.'</a></div>';
        $previous = $first;
        echo '<div>' .$value. "\n". '</div>';
    }
?>
bobazaza
Auteur

En fait j'aimerais trier ma liste des personnes, faire un sommaire de "A" allant à "Z" et quand je clique sur "A" par exemple, ça m'affiche tous les nom des personnes commençant par la lettre "A". =)

Ah j'ai le même problème que toi

Mais les noms des personnes sont dans une base de donnée ? Car sinon tu peut le récupérer en SQL ?

bobazaza
Auteur

oui les noms sont dans la base de données :)

bobazaza
Auteur

et comment ? dans le model ??