我的原始查询是从文本字段中获取一个术语并开始在一个表的两列中搜索它[为了创建自动完成]
$query = $_GET['query'];
$sql ="SELECT f_name, l_name FROM student WHERE (f_name ILIKE '%$query%' OR l_name ILIKE '%$query%');
$result = pg_query($con, $sql);
while ($row = pg_fetch_array($result))
{
$names[] = array('f_name' => $row[0], 'l_name' => $row[1]);
}
$name_list = array();
$name_list['success'] = true;
$name_list['names'] = $names;
$name_list['totalCount'] = count( $name_list['names'] );
echo json_encode($name_list);
不,我想从另一个表中添加额外的标准(例如:主题),因此用户可以输入学生名字、姓氏或主题的一部分。我还需要知道返回值的类型,我的意思是这是名称还是主题。所以我可以根据类型显示一个小图标。
这是模型,因此您可以想象我是如何做到的:
Ext.define("Post", {
extend: 'Ext.data.Model',
proxy: {
type: 'ajax',
url: 'app/search.php',
reader: {
type: 'json',
root: 'names',
autoLoad: true,
totalProperty: 'totalCount'
}
},
fields: ['f_name','l_name'
, {
name : 'display',
convert : function(v, rec) {
return rec.get('f_name') + ',' + rec.get('l_name');
}
}
]
});
因此,如果用户输入: mat 结果将是:
Mathio,Jay << 学生的名字和姓氏
Mark,Matt << 学生的名字和姓氏
在我的改变之后,它应该是这样的:
Mathio,Jay << 学生的名字和姓氏
Mark,Matt << 学生的名字和姓氏
数学<<科目