Помогите с автоматическим завершением метода в cakephp - PullRequest
0 голосов
/ 03 августа 2009

Я пытаюсь использовать поле автозаполнения в своем приложении, где значения извлекаются из таблицы.

Я хочу поделиться формой с множеством пользователей в таблице Users. У меня есть ссылка «Поделиться», и когда я нажимаю на нее, создается окно автозаполнения.

Теперь, когда я набираю в текстовом поле любое письмо, я хочу, чтобы оно автоматически предлагалось.

Это мой файл просмотра, /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>

Это мой файл 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>

И эта функция в forms_controller: / forms / autoComplete

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

Я получаю результаты в файле auto_complete.ctp, т.е. если я наберу букву 's' в текстовом поле autoComplete, я получу соответствующих пользователей в этом файле, но я не получу эти значения в тексте коробка. Кто-нибудь, помогите мне, пожалуйста.

1 Ответ

1 голос
/ 04 августа 2009

Ну, я нашел ответ сам.

Функция автозаполнения cakephp не работает, если вы используете JQuery.

Я убрал строку

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

и это работает ...

EDIT:

Если вы также хотите работать с jquery и вам нужен файл jquery.js, вам нужно включить режим без конфликтов в jQuery, как указано на сайте. http://docs.jquery.com/Using_jQuery_with_Other_Libraries

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...