sfWidgetFormDoctrineJQueryAutocompleter partiellement rempli pour la modification d'un enregistrement
Bonjour,
je fais à nouveau appel à vos connaissances pour un souci que j'ai depuis quelques temps sans résolution...
Dans mon formulaire de saisie d'entreprise (table entreprise), j'ai un champ personne que j'ai transformé en sfWidgetFormDoctrineJQueryAutocompleter afin qu'à la saisie, il aille chercher un nom de la table personne.
Ce lien fonctionne très bien pour l'ajout d'une nouvelle entreprise. Mais dès que je veux éditer une entreprise, je dois resaisir ce champ, car il n'est pas rempli automatiquement par SF selon les données existantes. Pour être plus précis, il rempli correctement le champ visible correspondant au nom de la personne, mais le champ caché devant contenir l'ID de la personne contient lui : array.
Code:
1 2 3
| <label for="entreprise_contacts_list">Personne de contact</label>
<input type="hidden" name="entreprise[contacts_list]" value="Array" id="entreprise_contacts_list" />
<input type="text" name="autocomplete_entreprise[contacts_list]" value="nom prenom" id="autocomplete_entreprise_contacts_list" /> |
Savez-vous ce qui pose problème ?
Voici le contenu de mes différentes class.
Dans EntrepriseForm.class.php
Code:
1 2 3 4 5 6
| $pph = new sfWidgetFormDoctrineJQueryAutocompleter(array(
'url' => '/autocomplete_pph',
'model' => 'PersonnePhysique',
'value_callback' => 'findOneById'
));
$this->setWidget('contacts_list', $pph); |
Dans action.class.php
Code:
1 2 3 4 5 6 7 8 9
| public function executeAutocomplete(sfWebRequest $request) {
$result = Doctrine_Core::getTable('PersonnePhysique')
->findPersonneByName($request['q']);
$temp = array();
foreach ($result as $pph) {
$temp[$pph['id']] = $pph->getNom()." ".$pph->getPrenom()." ".$pph->getPrenom2();
}
return $this->renderText(json_encode($temp));
} |
Dans routing :
Code:
1 2 3
| autocomplete_pph:
url: /autocomplete_pph
param: { module: personne_physique, action: autocomplete} |
Merci d'avance, je vous avoue que là je sèche...
++