Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'avance assez bien dans mon application, mais une demande qui semble pourtant simple me pose problème. Comment autoriser l'utilisateur à spécifier une chaine de caractères, par exemple 'toto' et ne conserver que les lignes d'un tableau déjà visible à l'écran qui contiennent cette chaine de caractères dans une de leurs colonnes ?
J'ai créé un petit formulaire pour lire la chaine de caractères, mais après ? J'ai un peu de mal à voir comment faire. Dans le Where ? Mais c'est infernal. Dans un filtre ? Mais on est ici à dire de garder toute la ligne telle qu'elle est si quelque part dans la ligne, le filtre est vérifié.
Quelqu'un peut-il me mettre sur la piste ? Je ferai l'effort de continuer moi-même
Merci d'avance
Dernière modification par faldo1 (16-06-2010 13:24:46)
Hors ligne
Perso j'ai rien compris... J'ai peu être raté une discutions, mais tu ne dis pas de quel composant tu parle, ni le contexte. Enfin peu etre que j'ai du mal aujourd'hui je sais pas xD
Hors ligne
Bonjour,
Justement, je ne fais du Zend que depuis un mois et j'ai du mal à voir quel composant utiliser. C'est bien là mon problème.
Imagine que j'aie une liste brute
aaa bbb ccc ddd eee
aaa bbb ccc dXd eee
aaa bbb ccc ddd eee
aaa bXb ccc ddd eee
aaa bbb ccc ddd eee
Si mon utilisateur tape 'X' dans le mini formulaire que j'ai mis en haut de la liste, j'aimerais que ma liste soit filtrée sur uniquement les lignes dont une des colonnes au moins contient ce 'X'
Donc que la liste soit rafraîchie à l'écran et ne contienne plus que
aaa bbb ccc dXd eee
aaa bXb ccc ddd eee
Je suppose qu'il existe des objets tout faits pour ça dans le Zend Framework, un peu comme pour pouvoir cliquer sur les colonnes pour trier, non ? Je n'ai pas envie de faire un "and colonne like '%x%' " sur chaque colonne dans le Where. Mais je ne vois pas directement quels objets Zend utiliser, ce n'est pas immédiat. Et je ne trouve pas les mots sur lesquels chercher dans Google pour avoir un début de réponse.
Merci pour ton aide.
Hors ligne
Oki la j'ai bcp mieux compris
Mais ta liste tu la récupère comment, c'est le retour d'une requête vers une base ou une liste html fixe?
Hors ligne
Ah ben, jusqu'ici, j'ai pu me débrouiller et tout faire dans les règles de l'art
C'est donc le retour d'un FetchAll()
Je n'ai pas écrit de sql direct mais j'ai utilisé l'object Select, les Join leftJoin, etc. Par contre, le tableau bâti par la vue est en pur html pour l'instant.
On dirait que Dojo m'aiderait nativement pour tout ce qui est tri sur le titre de la colonne, etc. Mais pour l'instant, c'est du pur html.
Dernière modification par faldo1 (16-06-2010 14:12:55)
Hors ligne
Et pourquoi tu veux pas utiliser une clause where dans ton fecthAll()?
Hors ligne
Parce que ma recherche se fait sur chaque colonne. Et je n'ai pas envie de faire autant de ' and colonne_i like '%critere%' que j'ai de colonnes
Ce serait plus simple alors de tout charger et de gérer le tableau mémoire.
Hors ligne
peut-être que :
foreach ($this->getAdapter()->describeTable($this->_name) as $col)
{
$select->where($col['COLUMN_NAME']. " LIKE ?", $critere)
}
ou un truc du genre ?
Hors ligne
Pages: 1