Javascript CakePHP可以';我不能让ajax开始工作
我似乎无法获得AJAX帖子,也无法使用我的CAKEPHP站点。我正在尝试创建自动完成,但似乎无法使用ajax提交或获取数据。我可以使用标记自动完成工作,但无法显示表格中的数据。如果我没有使用正确的url或其他问题,我不确定会出什么问题。 这是我的search.ctpJavascript CakePHP可以';我不能让ajax开始工作,javascript,php,jquery,ajax,cakephp,Javascript,Php,Jquery,Ajax,Cakephp,我似乎无法获得AJAX帖子,也无法使用我的CAKEPHP站点。我正在尝试创建自动完成,但似乎无法使用ajax提交或获取数据。我可以使用标记自动完成工作,但无法显示表格中的数据。如果我没有使用正确的url或其他问题,我不确定会出什么问题。 这是我的search.ctp <?php use Cake\Routing\Router; ?> <?php echo $this->Form->input('id', ['type' => 'text']); ?&
<?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>
这是我尝试键入ID时产生的错误。
这就是我希望通过使用search.ctp中的数组来生成的内容
这是我的桌子,我正试图从中获取ID。
有两种方法
$this->request->query('term')代码>
$\u请求['term']代码>
它似乎根本就没有找到PHP文件,所以查询或表不是问题所在。也许您的AJAX请求的URL格式不正确。将预期的URL写入控制台,然后查看其是否正确。我猜也可能是您的蛋糕路由设置不正确。您应该检查“网络”选项卡以了解发送和接收的内容,同时检查错误日志。请求处理程序组件btw.应在
initialize()
方法中加载(通常在AppController
中默认已加载)。
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']);
}
}