Я пытаюсь использовать поле автозаполнения в своем приложении, где значения извлекаются из таблицы.
Я хочу поделиться формой с множеством пользователей в таблице 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, я получу соответствующих пользователей в этом файле, но я не получу эти значения в тексте коробка. Кто-нибудь, помогите мне, пожалуйста.