我正在将Select2插件与Ajax一起使用以连接到我的员工数据库。它允许设置会议并选择您要邀请的所有员工。

代码如下所示:

$("#requiredAttendees").select2({
            multiple: true,
            minimumInputLength: 3,
            placeholder: "Search for employee",
            tokenSeparators: [" "],
            ajax: {
                url: "jsonUser.php",
                dataType: 'json',
                data: function (term) {
                    return {
                        term: term, // search term
                    };
                },
                results: function (data) { // parse the results into the format expected by Select2.
                    return {results: data};
                }
            },
        });


当我在字段中键入我的姓氏时,这是jSON响应:

[{"id":"12345","text":"Hussey, Sam},{"id":"67890","text":"Hussey, Carl"}]

我的问题是,在缩小搜索范围时,我也尝试通过搜索名字来进一步缩小搜索范围。因此,我将输入Hussey, c并期望它仅显示我的结果。

但是,当我输入逗号时,没有发现任何结果。

我认为代码会将逗号作为新结果,但是我不能确定。

这是我的JSON输出:

//Define the output
$firstName  = (string) $emp->FirstName;
$lastName   = (string) $emp->LastName;
$empID      = (string) $emp->EmpID;
$email      = (string) $emp->email;

//Add the resykts to an array
$users[] = array(
    'id' => $empID,
    'text' => $lastName . ', ' . $firstName,
);

}

//Set the content type to JSON  for jquery to understand
header('Content-Type: application/json');

//Print the response to the page
print json_encode($users);


有什么想法会导致这种情况吗?

编辑:

这是我发送查询的部分:

//Define some variables
$query    = $_GET['term'];
$users    = array();

//Prevent running if less than 3 char have bene submitted
if (strlen($query) < 3) {
    die();
}

//Create a new database connection
$objDB = new DB;
$xml   = $objDB->setStoredProc('focusGetEmp')->setParam("LastName", $query)->execStoredProc()->parseXML();

最佳答案

现在已解决。搜索字词只是直接从查询中获取结果,因此我不得不对其进行调整以进行修复。

之前

WHERE    LastName LIKE '%' + @LastName + '%'




WHERE    A.[LastName] + ', ' + A.[FirstName] LIKE '%' + @term + '%'

09-29 21:40