CakePHP无法获得ajax GET工作

时间:2017-07-07 21:47:32

标签: javascript php jquery ajax cakephp

我似乎无法使用我的CAKEPHP网站进行AJAX POST或GET。我正在尝试创建自动完成,但似乎无法使用ajax提交或获取数据。我可以使用标签自动完成工作,但我无法显示表格中的数据。如果我没有使用正确的网址或其他问题,我不确定会出现什么问题。 这是我的search.ctp

<?php use Cake\Routing\Router; ?>

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

<script>
    $.ajax({
    type:       "POST",
    url:        "<?php echo Router::url(array('controller' => 'Invoices', 'action' => 'search')); ?>",
    success:    function(response) {
        $("#id").autocomplete({ source: response });
    }
});
</script>

这是我的InvoicesController中的搜索功能。

    public function search()
{
    $this->loadComponent('RequestHandler');
    if ($this->request->is('ajax')) 
    {
        $name = $this->request->query['term'];
        $resultArr = $this->Invoices
    ->find()
    ->where(
        ['Invoices.id LIKE' => ($name . '%')],
        ['Invoices.id' => 'string']
    );

        $resultsArr = [];
        foreach ($resultArr as $result) 
        {
             $resultsArr[] = (strval($result['id']));
        }

        $this->set('resultsArr', $resultsArr);
        // This line is what handles converting your array into json
        // To get this to work you must load the request handler
        $this->set('_serialize', ['resultsArr']);


    }
}

这是我尝试输入ID时产生的错误。 enter image description here

这是我想要通过在search.ctp中使用数组来生成的 enter image description here

这是我的表我正在尝试从中获取ID。 enter image description here

1 个答案:

答案 0 :(得分:0)

有两种方法。

  1. $this->request->query('term');
  2. $_REQUEST['term'];