2009-08-03 5 views
0

J'essaie d'avoir une boîte automatique complète dans mon application, où les valeurs sont extraites d'une table.Aide avec la méthode auto complete dans cakephp

Je souhaite partager un formulaire avec un ensemble d'utilisateurs dans la table Utilisateurs. J'ai un lien appelé «Partager» et quand je clique sur le lien, la boîte de saisie semi-automatique est générée. Maintenant, quand je tape n'importe quelle lettre dans la zone de texte, je veux que ce soit automatiquement suggéré.

Ceci est mon fichier de vue, /views/main/home.ctp

<?php echo $javascript->link('prototype');?> 
<?php echo $javascript->link('scriptaculous');?> 
<?php echo $javascript->link('effects');?> 
<?php echo $javascript->link('controls');?> 

$(document).ready(function(){ 

    $(".Share<?=$r['Form']['id'];?>").click(function(){ 
     $("#share<?=$r['Form']['id'];?>").toggle("show"); 
    }); 
}); 

<li id="Share<?php echo $r['Form']['id']?>"> 
    <a href="#" class="Share<?=$r['Form']['id'];?>">Share</a> 
    <div id="share<?php echo $r['Form']['id']?>"> 
     <?php echo $form->create('User', array('url' => '/forms/share'));?> 
     <?php echo $ajax->autoComplete('User.name', '/forms/autoComplete');?> 
     <?php echo $form->end('Share');?> 
</div> 
</li> 

Ceci est mon fichier auto_complete.ctp: /views/forms/auto_complete.ctp

<?php echo $javascript->link('scriptaculous.js');?> 
<?php echo $javascript->link('prototype.js');?> 
<ul> 
    <?php foreach($users as $user): ?> 
     <li><?php echo $user['User']['name']; ?></li> 
    <?php endforeach; ?> 
</ul> 

Et ce cette fonction dans le forms_controller:/formes/autoComplete

function autoComplete() 
{ 
    $this->set('users',$this->User->find('all',array('conditions'=>array('User.name LIKE' => $this->data['User']['name'].'%')))); 
    $this->layout = "ajax"; 
} 

Je reçois les résultats dans le fichier auto_complete.ctp, i .e, si je tape la lettre 's' dans la boîte de texte autoComplete, j'obtiens les utilisateurs correspondants dans ce fichier, mais je n'obtiens pas ces valeurs dans la zone de texte. Quelqu'un m'aide s'il vous plait.

Répondre

1

Eh bien, j'ai trouvé la réponse moi-même.

La fonctionnalité de saisie semi-automatique de cakephp ne fonctionne pas si vous utilisez JQuery.

J'ai enlevé la ligne

<?php echo $javascript->link('jquery');?> 

et travaille ...

EDIT:

Si vous voulez aussi travailler avec jquery et besoin du fichier jquery.js, vous besoin d'activer le mode sans conflit dans jQuery, comme indiqué sur le site http://docs.jquery.com/Using_ jQuery _ avec _ Autres _ Bibliothèques

Questions connexes