【发布时间】:2011-10-08 14:50:18
【问题描述】:
根本无法让我的 ajax 工作。下面是我的代码。我正在尝试使用自动完成
后控制器
<?php
class PostsController extends AppController {
var $name = 'Posts';
var $helpers = array('Html','Ajax','Javascript');
//Extra Functionality
function autoComplete() {
//Partial strings will come from the autocomplete field as
//$this->data['Post']['subject']
$this->set('topics', $this->Post->Topic->find('all', array(
'conditions' => array(
'Topic.name LIKE' => '%'.$this->data['Topic']['Topic'].'%'
),
'fields' => array('Topic')
)));
$this->layout = 'ajax';
}
}
FORM add.ctp
<div class="posts form">
<?php echo $this->Form->create('Post');?>
<fieldset>
<legend><?php __('Add Post'); ?></legend>
<?php
echo $this->Form->input('comment');
echo $this->Form->input('user_id');
//echo $this->Form->input('Topic',array('type'=>'text'));
echo $ajax->autoComplete('Topic', '/posts/autoComplete');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit', true));?>
</div>
应该动态出现的ajax表单
<ul>
<?php foreach($topics as $topic): ?>
<li><?php echo $item['Topic']['name']; ?></li>
<?php endforeach; ?>
</ul>
和default.ctp中的js插件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
<title>test page</title>
<?php echo $this->Html->css('skin'); ?>
<?php echo $html->script('prototype');echo $html->script('scriptaculous'); ?>
</head>
<body>
<div id="wrapper">
<div class="header">
Gossip
</div>
<div id="content">
<?php echo $content_for_layout ?>
</div>
<div class="footer">
</div>
</div>
</body>
</html>
我还检查了谷歌浏览器,所有脚本文件都正确加载。是的,我确实添加了所有符合圣经的文件和原型。
谢谢:D
【问题讨论】:
标签: php cakephp cakephp-1.3