如何使用 jquery 在同一行显示 json_encode 数组中的两个值?
How to display two values from json_encode array on the same line using jquery?
我将 jquery .autocomplete() 用于从 json_encode 数组获取数据的 html 搜索表单。
获取的数组在匹配时有两个值 - company_code 和 company_name.
.autocomplete() 一个一个地显示值,但我希望它们在同一行。
这是我获取数组的代码,它获取了两个值:
$stmt = $conn->prepare('SELECT TICKER, COMPANY_NAME FROM companies WHERE TICKER LIKE :term OR COMPANY_NAME LIKE :term');
$stmt->execute(array('term' => $_GET['term'].'%'));
while($row = $stmt->fetch()) {
$return_arr[] = $row['TICKER'];
$return_arr[] = $row['COMPANY_NAME'];
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
jquery 自动完成脚本是这个:
$(function() {
$(".search").autocomplete({
source: "/php/autocomplete.php",
minLength: 1
});
输出结果如下:
drop down menu with two items one under the other.
这很简单,您只需将列值连接在一起作为单个数组元素而不是单独的元素。
例如,而不是这个:
$return_arr[] = $row['TICKER'];
$return_arr[] = $row['COMPANY_NAME'];
这样做:
$return_arr[] = $row['TICKER'] . ' ' . $row['COMPANY_NAME'];
请注意,我将两列值连接为一个字符串(中间有一个 space)。
您的代码不起作用的原因是当您执行 $return_arr[] = 'some_value'
时,您正在向 json 数组追加一个新元素,而 jQuery UI 自动完成将每个元素视为一个单独的列表项。
我将 jquery .autocomplete() 用于从 json_encode 数组获取数据的 html 搜索表单。 获取的数组在匹配时有两个值 - company_code 和 company_name.
.autocomplete() 一个一个地显示值,但我希望它们在同一行。
这是我获取数组的代码,它获取了两个值:
$stmt = $conn->prepare('SELECT TICKER, COMPANY_NAME FROM companies WHERE TICKER LIKE :term OR COMPANY_NAME LIKE :term');
$stmt->execute(array('term' => $_GET['term'].'%'));
while($row = $stmt->fetch()) {
$return_arr[] = $row['TICKER'];
$return_arr[] = $row['COMPANY_NAME'];
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
jquery 自动完成脚本是这个:
$(function() {
$(".search").autocomplete({
source: "/php/autocomplete.php",
minLength: 1
});
输出结果如下: drop down menu with two items one under the other.
这很简单,您只需将列值连接在一起作为单个数组元素而不是单独的元素。
例如,而不是这个:
$return_arr[] = $row['TICKER'];
$return_arr[] = $row['COMPANY_NAME'];
这样做:
$return_arr[] = $row['TICKER'] . ' ' . $row['COMPANY_NAME'];
请注意,我将两列值连接为一个字符串(中间有一个 space)。
您的代码不起作用的原因是当您执行 $return_arr[] = 'some_value'
时,您正在向 json 数组追加一个新元素,而 jQuery UI 自动完成将每个元素视为一个单独的列表项。