自动填充CakePHP未显示

时间:2017-03-02 22:44:59

标签: php jquery cakephp

我正在尝试自动完成以便在键入时显示我的发票ID但我不相信脚本在我的ctp文件上运行。我正在尝试遵循本指南http://www.naidim.org/cakephp-3-tutorial-18-autocomplete我不太确定它是否实际上正在访问该功能。我曾尝试查看许多指南和教程,但似乎无法在cakephp 3上工作。

我的test.ctp

    <?php use Cake\Routing\Router; ?>
<?php
echo $this->Html->script('//code.jquery.com/jquery-1.10.2.js');
echo $this->Html->script('//code.jquery.com/ui/1.11.4/jquery-ui.js');
echo $this->Html->css('//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css');
?>

<script>
    jQuery('#id').autocomplete({
        source:'<?php echo Router::url(array('controller' => 'Invoices', 'action' => 'getAll')); ?>',
        minLength: 1
    });

</script>
    <?php
    echo $this->Form->input('id', ['type' => 'int']);
    ?>

我的getAll功能

public function getAll()
{
    if ($this->requrest->is('ajax')) {
        $this->autoRender = false;
        $name = $this->request->query['term'];
        $items = $this->Invoices->find('all', [
        'conditions' => [
        'id LIKE' => '%' . $this->request->query('term') . '%'
        ]
    ]);
        $resultsArr = [];
        foreach ($results as $result) {
             $resultsArr[] =['label' => $result['id'], 'value' => $result['id']];
        }
        echo json_encode($resultsArr);
    }
}

我的发票表

CREATE TABLE IF NOT EXISTS `invoices` (
  `id` int(11) NOT NULL,
  `start_date` date DEFAULT NULL,
  `close_date` date DEFAULT NULL,
  `customer_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我相信它甚至根本没有被触发,因为如果你在test.ctp中将路由路径更改为无效路径,则在输入id时控制台中没有任何反应也不会发生错误。你可以在这里用team.southpacificavionics.com/invoices/test测试它,用户名“guest”和密码“password”登录

0 个答案:

没有答案