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

Symfony PHP Discussion :

filtre dans fontend


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Par défaut filtre dans fontend
    Merci bcq mimi,
    donc voila je t'explique ce que j'ai fait, je sais que j'ai commis une erreur quelque part mais je sais pas ou.
    voila mon fichier indexSuccess.php
    Code :

    <?php use_stylesheet('biens.css') ?>
    <?php //echo($transaction->getName()) ?>
    <div id="search">
    <?php include_partial('bien/filter', array('filter' => $filter))
    ?>
    <?php //include_component('recherche', 'search') ?>
    </div>
    <div id="biens">
    <div>&nbsp;</div>
    <div>&nbsp;</div>
    <div>&nbsp;</div>
    <?php foreach ($transactions as $transaction): ?>
    <div class="<?php echo $transaction ?>">
    <div class="transaction">
    <div class="feed">
    <a href="<?php echo url_for('transaction', array('sf_subject' => $transaction, 'sf_format' => 'atom')) ?>">Flux</a>
    </div>
    <?php echo link_to($transaction, 'transaction', $transaction) ?>
    </div>
    <?php include_partial('bien/list', array('biens' => $transaction->getActiveBiens(sfConfig::get('app_max_biens_on_homepage'), sfOutputEscaper::unescape($query)))) ?>
    <?php if (($count = $transaction->countActiveBiens() - sfConfig::get('app_max_biens_on_homepage')) > 0): ?>
    <div class="more_biens">
    et <?php echo link_to($count, 'transaction', $transaction) ?>
    plus...
    </div>
    <?php endif; ?>
    </div>

    <?php endforeach; ?>
    <div class="vide">&nbsp;</div>
    <div class="vide">&nbsp;</div>
    </div>

    <div style="clear:both"></div>

    et puis j'ai crée le partial filter
    Code :

    <?php use_javascripts_for_form($filter) ?>
    <?php use_javascripts_for_form($filter) ?>



    <?php if ($filter->hasGlobalErrors()): ?>
    <?php echo $filter->renderGlobalErrors() ?>
    <?php endif; ?>


    <form class="lien_ajax" action="<?php echo url_for('bien/filter') ?>" method="post">
    <?php echo $filter->render() ?>

    <?php echo $filter->renderHiddenFields() ?>
    <input type="submit" value="Filter" /> &nbsp;
    <a class="lien_ajax" href="<?php echo url_for('bien/filter?_reset=1') ?>">Reset</a>
    </form>

    et finalement le fichier actions.class.php
    Code :

    public function executeIndex(sfWebRequest $request) {
    $this->filter = new BienFormFilter ( $this->getFilter () );
    $this->transactions = Doctrine_Core::getTable ( 'Transaction' )->getWithBiens ();



    if ($request->isMethod ( 'get' )) {
    $this->filter->bind ( $request->getParameter ( $this->filter->getName () ) );
    }
    $this->query = $this->filter->buildQuery ( $this->filter->getValues () );

    }

    public function executeFilter(sfWebRequest $request) {


    if ($request->hasParameter ( '_reset' )) {
    $this->setFilter ( array () );
    $this->forward ( 'bien', 'index' );
    }

    $this->filter = new BienFormFilter ( $this->getFilter () );

    $this->filter->bind ( $request->getParameter ( $this->filter->getName () ) );
    if ($this->filter->isValid ()) {
    $this->setFilter ( $this->filter->getValues () );
    $this->forward ( 'bien', 'index' );
    }

    $this->setTemplate ( 'index' );
    }

    protected function getFilter() {
    return $this->getUser ()->getAttribute ( 'bien.filter', array () );
    }

    protected function setFilter(array $filter) {
    return $this->getUser ()->setAttribute ( 'bien.filter', $filter );
    }

    protected function buildQuery($q) {
    if (! isset ( $this->filter ))
    $this->filter = $this->getFilter ();

    $this->filter->setQuery ( $q );

    $query = $this->filter->buildQuery ( $this->getFilter () );
    return $query->execute ();
    }

    c'est tous ce que j'ai fait mais ca filtre pas.
    J'ai essayé d'enlever le retour du filtre dans index mais il m'affiche l'erreur que $filter dans le fichier indexSuccess n'est pas definie dc j'étais obligé de laisser la classe comme telle.
    dans l'objet user je vois les données du filtre exemple:

    SELECT COUNT(*) AS num_results FROM transaction t WHERE t.id = '1'


    SELECT COUNT(*) AS num_results FROM etat e WHERE e.id = '1'


    SELECT COUNT(*) AS num_results FROM type t WHERE t.id = '3'
    SELECT COUNT(*) AS num_results FROM user u WHERE u.id = '1'

    SELECT b.id AS b__id, b.transactions_id AS b__transactions_id, b.etats_id AS b__etats_id, b.types_id AS b__types_id, b.users_id AS b__users_id, b.date_construction AS b__date_construction, b.nbr_piece AS b__nbr_piece, b.surface AS b__surface, b.prix AS b__prix, b.code_postal AS b__code_postal, b.adresse AS b__adresse, b.ville AS b__ville, b.pays AS b__pays, b.disponible_le AS b__disponible_le, b.description AS b__description, b.is_activated AS b__is_activated, b.expires_at AS b__expires_at, b.created_at AS b__created_at, b.updated_at AS b__updated_at FROM bien b


    j'ai fais le filtre sur transactions_id=1 etats_id=1, types_id=3 et users_id=1

    Merci bcq

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut


    Sans rentrer dans le détail du xHTML généré, pourquoi avoir trois fois "<div>&nbsp;</div>" ? Tu es sur que tu ne serais pas atteinte d'un début de divite ?

    Question 1 : (il me semble l'avoir déjà posée sans réponse).
    Quant tu affiches ton formulaire, qui devrait être filtrer (donc deuxième affichage), dans la barre de debug de symfony, quant tu regardes l'objet user, vois-tu une variable bien.filter avec les données de ta précédente demande ?

    Question 2 : Toujours dans le deuxième affichage (après aoiv tenté un filtre). Est-ce que le formulaire de filtre te ré-affiche les paramètres de filtre demandés ?

  3. #3
    Membre habitué
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Par défaut
    Oui je trouve dans la barre de debug de symfony, les donnnées du filtre prcedent.et le formulaire de filtre me ré-affiche les paramètres de filtre demandés precedemment.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    A mon avis c'est dans ton executeIndex() qu'il y a quelque chose qui ne tourne pas.

    Et à y regarder de près, je ne comprend pas ce que tu veux faire avec ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($request->isMethod ( 'get' )) {
    $this->filter->bind ( $request->getParameter ( $this->filter->getName () ) );
    }
    $this->query = $this->filter->buildQuery ( $this->filter->getValues () );

Discussions similaires

  1. Configurer un filtre dans le détail
    Par drpark dans le forum DirectX
    Réponses: 6
    Dernier message: 02/08/2006, 15h53
  2. Filtre dans un sous-formulaire
    Par moto25 dans le forum IHM
    Réponses: 14
    Dernier message: 10/11/2005, 09h16
  3. [VB.NET] filtre dans base de donnée
    Par speedtug dans le forum Windows Forms
    Réponses: 7
    Dernier message: 21/09/2005, 17h12
  4. Application d'un filtre dans sous form (syntaxe)
    Par samlepiratepaddy dans le forum Access
    Réponses: 12
    Dernier message: 15/09/2005, 21h32
  5. Probleme de filtre dans bdd
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2002, 10h43

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