Tu reprends chaque fois le dernier enregistrement, c'est pour ça. Il faut que tu stockes le tout dans un tableau comme ceci
salut j'ai mis sur pied un autocomple avec jquery et cakephp2.6, cela fonctionne bien sauf j'ai un tout petit soucis avec le résultat obtenu en effet dans ma vue j'ai ceci:```
<div id="recherche">
<div class="input-group">
<input type="text" class="form-control listepers" placeholder="Entrer le nom, prénom ou login pour la recherche">
<span class="input-group-btn">
<button class="btn btn-primary " type="button"> <span class="glyphicon glyphicon-search"></span> Recherche! </button>
</span>
</div>
</div>
public function listPerseonnel($query = null)
{
if($this->request->is('ajax','get'))
{
$responseenter = $this->request->query['query'];
$results= ($this->Attributionfiliere->Personnel->find('all',array(
'fields' => array('id','pseudo','nom_personnel','prenom_personnel'),
'conditions' => array('Personnel.enseignements_id' => $this->Auth->user('enseignements_id'),
'Fonctionpersonnel.poste' => 'Enseignant',
'OR' => array(
array("nom_personnel LIKE" => "%" . $responseenter . "%"),
array("prenom_personnel LIKE" => "%" . $responseenter . "%"),
array("pseudo LIKE" => "%" . $responseenter . "%")
)
),
'recursive' => 0
)));
if(empty($results))
{
$this->Session->setFlash('Veuillez selectionnez un element valide','default',array('class'=>'alert alert-info'));
$suggestions = array("data" =>"","value" => "pas de résultat");
}
else
{
foreach ($results as $key => $resp) {
$suggestions = array("data" => $resp['Personnel']['id'], "value" => $resp['Personnel']['nom_personnel'] .' ' . $resp['Personnel']['prenom_personnel']);
$resp = '{"suggestions" :['. json_encode($suggestions). ']}';
}
//debug($resp);
die ($resp);
exit();
}
}
}
3 réponses
Bonsoir,
normal que tu saisisse qu'un enregistrement déjà tu récupère toujours le dernier du trableau retourné via ta requête
t'a deux choix si ton parcours de tableau a une suite de 1 à n
tu utilise les index dans ton fearcheach
sinon
tu fais un array_push
et t'a pas besoin de mettre du json directement ou si tu veux avant ton json_encode structure ton tableau et tu a juste à faire
echo json_encode($array);
die(); et sans exit();
Cordialement.
merçi j'ai trouvé il falait stocké dans un tableau comme à précisé "kareylo" et retirer les quotes donc comme ceci:```
if(empty($results))
{
$this->Session->setFlash('Veuillez selectionnez un element valide','default',array('class'=>'alert alert-info'));
$suggestions[] = array("data" =>"","value" => "pas de résultat");
$resp = '{"suggestions" :'. json_encode($suggestions). '}';
}
else
{
foreach ($results as $key => $resp) {
$suggestions[] = array("data" => $resp['Personnel']['id'], "value" => $resp['Personnel']['nom_personnel'] .' ' . $resp['Personnel']['prenom_personnel']);
$resp = '{"suggestions" :'. json_encode($suggestions). '}';
}
die ($resp);
}