我正在尝试使用Cakephp 3创建一个搜索建议输入框。我在线找到了一个教程,我试图实现它,但我没有得到教程中提到的建议。 (http://www.naidim.org/cakephp-3-tutorial-18-autocomplete)
PagesController.php
public function chargesadd()
{
$this->loadModel('Charges');
if ($this->request->is('ajax')) {
$this->autoRender = false;
$name = $this->request->query['term'];
$results = $this->Customers->find('all', [
'conditions' => [ 'OR' => [
'name LIKE' => $name . '%',
'id LIKE' => $name . '%',
]]
]);
$resultsArr = [];
foreach ($results as $result) {
$resultsArr[] =['label' => $result['name'], 'value' => $result['id']];
}
echo json_encode($resultsArr);
}
}
chargesadd.ctp
<?php use Cake\Routing\Router; ?>
<?php
echo $this->Form->input('customer_id', ['type' => 'text']);
?>
<script>
jQuery('#customer-id').autocomplete({
source:'<?php echo Router::url(array('controller' => 'Pages', 'action' => 'chargesadd')); ?>',
minLength: 3
});
</script>
我感觉 $ resultsArr 输出的方式有问题。但我无法正确弄清楚它有什么问题。
我正在使用CakePHP 3.4.7
答案 0 :(得分:0)
我尝试了这种方法,但由于某些原因,如果有人试图执行自动完成功能或搜索建议功能,则无法解决此问题。
(https://silviomoreto.github.io/bootstrap-select/)
您需要生成下拉列表。基本上就是这样。并添加“selectpicker”类和相关的cdn资源。
<select class="selectpicker">
<option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select>