BUG 8160 Fix Bug in the search for component Suggest.
This commit is contained in:
@@ -179,7 +179,9 @@ _b.AutoSuggest.prototype.getSuggestions = function (val)
|
|||||||
var arr = [];
|
var arr = [];
|
||||||
for (var i=0;i<l;i++)
|
for (var i=0;i<l;i++)
|
||||||
{
|
{
|
||||||
if (this.aSug[i].value.substr(0,val.length).toLowerCase() == val.toLowerCase())
|
// if (this.aSug[i].value.substr(0,val.length).toLowerCase() == val.toLowerCase())
|
||||||
|
if (this.aSug[i].value.substr(0,val.length).toLowerCase() == val.toLowerCase() ||
|
||||||
|
this.aSug[i].value.toLowerCase().indexOf(val.toLowerCase()) > 0)
|
||||||
arr.push( this.aSug[i] );
|
arr.push( this.aSug[i] );
|
||||||
}
|
}
|
||||||
this.aSug = arr;
|
this.aSug = arr;
|
||||||
|
|||||||
@@ -47,15 +47,17 @@ if( isset($request) ){
|
|||||||
$aFieldSelect = explode(",", $sqlColumns);
|
$aFieldSelect = explode(",", $sqlColumns);
|
||||||
$sFieldSel = (count($aFieldSelect)>1 ) ? $aFieldSelect[1] : $aFieldSelect[0];
|
$sFieldSel = (count($aFieldSelect)>1 ) ? $aFieldSelect[1] : $aFieldSelect[0];
|
||||||
if( strlen(trim($sqlWhere))>0) {
|
if( strlen(trim($sqlWhere))>0) {
|
||||||
$SQL .= " WHERE " . $sqlWhere . " AND " . $sFieldSel . " LIKE '". $_GET['input']."%'";
|
$SQL .= " WHERE " . $sqlWhere . " AND " . $sFieldSel . " LIKE '%". $_GET['input']."%'";
|
||||||
} else {
|
} else {
|
||||||
$SQL .= " WHERE " . $sFieldSel . " LIKE '". $_GET['input']."%'";
|
$SQL .= " WHERE " . $sFieldSel . " LIKE '%". $_GET['input']."%'";
|
||||||
}
|
}
|
||||||
if( strlen(trim($sqlGroupBy))>0) {
|
if( strlen(trim($sqlGroupBy))>0) {
|
||||||
$SQL .= " GROUP BY " . $sqlGroupBy;
|
$SQL .= " GROUP BY " . $sqlGroupBy;
|
||||||
}
|
}
|
||||||
if( strlen(trim($sqlOrderBy))>0) {
|
if( strlen(trim($sqlOrderBy))>0) {
|
||||||
$SQL .= " ORDER BY " . $sqlOrderBy;
|
$SQL .= " ORDER BY " . $sqlOrderBy;
|
||||||
|
} else {
|
||||||
|
$SQL .= " ORDER BY " . $sFieldSel;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//fixed: improving the statement sql by krlos
|
//fixed: improving the statement sql by krlos
|
||||||
@@ -95,6 +97,7 @@ if( isset($request) ){
|
|||||||
$aResults = array();
|
$aResults = array();
|
||||||
$count = 0;
|
$count = 0;
|
||||||
|
|
||||||
|
$aRows = sortByChar($aRows, $input);
|
||||||
|
|
||||||
if ($len){
|
if ($len){
|
||||||
for ($i=0;$i<count($aRows);$i++){
|
for ($i=0;$i<count($aRows);$i++){
|
||||||
@@ -128,10 +131,10 @@ if( isset($request) ){
|
|||||||
// had to use utf_decode, here
|
// had to use utf_decode, here
|
||||||
// not necessary if the results are coming from mysql
|
// not necessary if the results are coming from mysql
|
||||||
//
|
//
|
||||||
if (strtolower(substr($value,0,$len)) == $input){
|
// if (strtolower(substr($value,0,$len)) == $input){
|
||||||
$count++;
|
$count++;
|
||||||
$aResults[] = array( "id"=>$id ,"value"=>htmlspecialchars($value), "info"=>htmlspecialchars($info) );
|
$aResults[] = array( "id"=>$id ,"value"=>htmlspecialchars($value), "info"=>htmlspecialchars($info) );
|
||||||
}
|
// }
|
||||||
|
|
||||||
if ($limit && $count==$limit)
|
if ($limit && $count==$limit)
|
||||||
break;
|
break;
|
||||||
@@ -198,3 +201,32 @@ if( isset($request) ){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sortByChar($aRows, $charSel)
|
||||||
|
{
|
||||||
|
$aIniChar = array();
|
||||||
|
$aRest = array();
|
||||||
|
for($i=0; $i<count($aRows) ;$i++){
|
||||||
|
$aRow = $aRows[$i];
|
||||||
|
$nCols = sizeof($aRow);
|
||||||
|
$aRowOrder = array_values($aRow);
|
||||||
|
switch( $nCols ){
|
||||||
|
case 1:
|
||||||
|
$value = $aRowOrder[0];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$value = $aRowOrder[1];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case $nCols >= 3:
|
||||||
|
$value = $aRowOrder[1];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(substr(lowerCase($value), 0, 1) == substr( lowerCase($charSel), 0, 1)){
|
||||||
|
array_push($aIniChar, $aRow);
|
||||||
|
} else {
|
||||||
|
array_push($aRest, $aRow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return array_merge($aIniChar, $aRest);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user