Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2012, 10h36   #1
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
Par défaut Autocompletion symfony et l'enregistrement en BD

Bonjour,pour travailler avec autocompletion dans mon formulaire je me suis basé sur le lien suivant ici,tout marche très bien pour l'autocompletion mais le contraire pour l'enregistrement du choix à la base de donnée puisque il enregistre le ID au lieu du mot cherché :


mon formulaire :

Code :
1
2
3
4
5
6
7
8
9
10

       $projet= new sfWidgetFormDoctrineJQueryAutocompleter(array(
                    'url' => 'ajaxprojet.html',
                    'model' => 'Project',
                    'method_for_query'=>''
                    
                    ));

            $this->setWidget('projet', $projet);
mon action :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
  public function executeAjax(sfWebRequest $request) 
  {
    $this->getResponse()->setContentType('application/json');
    $choices = array();
    foreach($projects= Doctrine::getTable('projects')->getProfilAutocompletion($request->getParameter('q'), $request->getParameter('limit'))->getData() as $p)
    {
 
      $choices[$p->id_projet] = $p->projet;
    }
    if($projects != array())
    {
      return $this->renderText(json_encode($choices));
    }
  }
puis dand mon table :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
 
   public function getProfilAutocompletion($q, $limit){
    $dq = Doctrine_Query::create()
            ->select("p.id_projet, p.projet")
            ->from("Projects p")
            ->where("p.projet LIKE ?","%".$q."%")
            ->limit($limit)
            ->orderBy('p.projet ASC');
    return $dq->execute();
  }

et dans mon vue :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
         <tr>
                            <th>
                               Projet :
                            </th>
                            <td>
                                <?php echo $form['projet']->render(array('class' => ($form['projet']->renderError()) ? 'inp-form-error' : 'inp-form')); ?>
                            </td>
                            <td>
                                <?php if ($form['projet']->renderError()): ?>
                                    <div class="error-left"></div>
                                    <div class="error-inner"><?php echo $form['projet']->renderError(); ?></div>
                                <?php endif; ?>
                            </td>
                        </tr>
Alors à la table "projects" il me retourne "id_projet" au champ "pojet"...,je pense que le problème vient de "method_for_query"(en roug en code)!!

Une idée??
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 11h03   #2
Membre habitué
 
Inscription : juin 2006
Messages : 488
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 488
Points : 116
Points : 116
c'est la méthode normal de ce widget, ton schéma ne doit pas être pile poil.
erictomcat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 11h09   #3
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 575
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 575
Points : 690
Points : 690
Envoyer un message via MSN à kenny.kev
Code :
$choices[$p->id_projet] = $p->projet;
tu as ta réponse ici pourquoi tu enregistre l'id et non le nom.
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 11h15   #4
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
Oui tu es tout à fait raison Kenny,je suis un vrai con,je n'ai pas bien vu et j'ai cru que c'est pour lister les mot recherchés,je te remercie tout passe bien...
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h31.


 
 
 
 
Partenaires

Hébergement Web