【问题标题】:live/autocomplete search in cakephp 3.xcakephp 3.x 中的实时/自动完成搜索
【发布时间】:2016-12-05 09:20:14
【问题描述】:

我正在尝试在 cakephp 3.x 中执行实时搜索,到目前为止,我能够通过静态定义脚本标签内的数据来实现它,我希望从我的 MySql 数据库中检索数据,其中所有内容被存储。下面是我在模板文件夹中使用的脚本标签。

<script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
<script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

<!-- Javascript -->
<script>
$(function() {
var results = [
"ActionScript",
"Boostrap",
"C",
"C++",
];
$( "#automplete-1" ).autocomplete({
source: results
});
});
<link href = "https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css"
rel = "stylesheet">
<html>
<body>
<!-- HTML --> 
<div class = "ui-widget">

<?php foreach($data as $row)
{
echo $row->name;
}?>
<p>Type "a" or "s"</p>
<label for = "automplete-1">Tags: </label>
<input id = "automplete-1">
</div>
</body>
</html>

【问题讨论】:

  • 我希望从 Mysql 数据库中动态获取结果变量的值。
  • 到目前为止我已经尝试过了 -->
  • 我试图解决它,现在我知道首先我必须使用 JSON_encode 来更改结果的格式,然后将其传递到 javascript 变量中,所以这种方法是否正确?

标签: jquery mysql cakephp search assistive


【解决方案1】:

首先,您必须只从 $data 数组中提取名称。您可以使用 CakePHP Hash::extract 函数 (http://book.cakephp.org/3.0/en/core-libraries/hash.html#Cake\Utility\Hash::extract) 来实现。然后将结果编码为 JSON 并打印出来。像

var results = <?php echo json_encode(\Cake\Utility\Hash::extract($data, '{n}.name')); ?>; 

【讨论】:

    猜你喜欢
    • 2018-07-27
    • 2016-01-18
    • 2011-08-29
    • 2013-02-17
    • 2013-07-05
    • 1970-01-01
    • 2017-12-07
    • 2017-11-12
    • 1970-01-01
    相关资源
    最近更新 更多