[英]In a search box,how to display data from two different columns of a same database table depending on the input?
我正在使用输入框从数据库中搜索数据。 每当我在输入框中输入内容时,如果找到与给定输入相匹配的内容,我只会从A列获取相对数据预测,而我希望从A列和B列获取预测。如果我从B列输入数据,则进入预测我为该特定行获取列A的值。这两列均来自同一张表。因此,请帮助。HTML:
<div class='col-md-6'>
<input autocomplete="off" type="text" ng-model="assignName" id="assignName" placeholder="Assigned To" class="form-control" min-length="4" uib-typeahead="as.aName as as.aName for as in assign($viewValue)" typeahead-editable="false">
<input type="hidden" id="assignId" value="{{assignName.aId}}"></div>
Javascript:
$scope.assign = function(assignName) {
if (assignName.length >= 2) {
return servicePOST.send(appConstants.BASE_MS_URL + 'Activity/search_query.php', {
'assignName': assignName,
'case': 'getAssign'
}).then(function(response) {
var res = _.map(response, function(value, key, list) {
var obj = {
'aName': '',
'aId': '',
'aFname':''
};
obj.aName = value.user_name;
obj.aId = value.id;
obj.aFname = value.first_name;
return obj;
});
return res;
});
}
};
PHP:
$sql="SELECT DISTINCT
users.id,
users.first_name,
users.user_name
FROM
users
WHERE
(users.first_name LIKE '$assignName%' OR users.user_name LIKE '$assignName%')";
如果我从A ..列输入数据,则预测来自表A本身。
如果我从B列中输入数据,我将从A列中仅具有相同行的数据...而我想要从B列中获取。
而不是返回整个对象。 尝试使用过滤器返回与键入的单词有关的特定对象:
就像是:
$scope.assign = function(assignName) {
if (assignName.length >= 2) {
return servicePOST.send(appConstants.BASE_MS_URL + 'Activity/search_query.php', {
'assignName': assignName,
'case': 'getAssign'
}).then(function(response) {
var res = _.map(response, function(value, key, list) {
var obj = {
'aName': '',
'aId': '',
'aFname':''
};
obj.aName = value.user_name;
obj.aId = value.id;
obj.aFname = value.first_name;
//here $ means search all the properties of object
return $filter('filter')(obj , {'$': assignName});
});
return res;
});
}
};
而您的HTML可以:
<input autocomplete="off" type="text" ng-model="assignName" id="assignName" placeholder="Assigned To" class="form-control" min-length="4" uib-typeahead="as for as in assign($viewValue)" typeahead-editable="false">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.