jQuery 自动完成未显示查询的所有结果
jQuery Autocomplete Not showing all results from query
我正在使用 jQuery 自动完成来查看结果作为用户类型的下拉列表,在我的例子中,我从数据库中获取用户名来显示,
<?php
foreach ($stmt = $link->query('select u.id, u.display_name from user u inner join accounts a on u.id=a.uid where a.account_type !="bot" order by u.display_name ASC') as $value)
{
?>
display_name.push('<?php echo $value["display_name"] ?>');
user_id.push('<?php echo $value["id"] ?>');
<?php
}
?>
这里的问题是,很多名字都像 o'livia 或 de'silva,这个额外的 '
导致查询行为异常,它不显示结果而是打印此错误消息。
user_id.push('5648');
display_name.push('Boody L'Dally');
Uncaught SyntaxError: missing ) after argument list
虽然我知道我没有正确格式化我的查询,但我尝试了很多选项但没有用,知道如何正确使用所有名称吗?
您需要转义来自数据库的数据。
有许多函数可以转义数据,值得进一步阅读。
这是一个例子:
display_name.push('<?= htmlspecialchars($value["display_name"]) ?>');
如果您的字符串只包含 'never" ...那么可以像下面这样解决..
user_id.push('5648');
display_name.push("Boody L'Dally");
function autocomplet() {
var min_length = 0;
var keyword = $('#country_id').val();
if (keyword.length >= min_length) {
$.ajax({
url: 'ajax_refresh.php',
type: 'POST',
data: {keyword:keyword},
success:function(data){
$('#country_list_id').show();
$('#country_list_id').html(data);
}
});
} else {
$('#country_list_id').hide();
}
}
function set_item(item) {
// change input value
$('#country_id').val(item);
// hide proposition list
$('#country_list_id').hide();
}
我正在使用 jQuery 自动完成来查看结果作为用户类型的下拉列表,在我的例子中,我从数据库中获取用户名来显示,
<?php
foreach ($stmt = $link->query('select u.id, u.display_name from user u inner join accounts a on u.id=a.uid where a.account_type !="bot" order by u.display_name ASC') as $value)
{
?>
display_name.push('<?php echo $value["display_name"] ?>');
user_id.push('<?php echo $value["id"] ?>');
<?php
}
?>
这里的问题是,很多名字都像 o'livia 或 de'silva,这个额外的 '
导致查询行为异常,它不显示结果而是打印此错误消息。
user_id.push('5648');
display_name.push('Boody L'Dally');
Uncaught SyntaxError: missing ) after argument list
虽然我知道我没有正确格式化我的查询,但我尝试了很多选项但没有用,知道如何正确使用所有名称吗?
您需要转义来自数据库的数据。 有许多函数可以转义数据,值得进一步阅读。 这是一个例子:
display_name.push('<?= htmlspecialchars($value["display_name"]) ?>');
如果您的字符串只包含 'never" ...那么可以像下面这样解决.. user_id.push('5648'); display_name.push("Boody L'Dally");
function autocomplet() {
var min_length = 0;
var keyword = $('#country_id').val();
if (keyword.length >= min_length) {
$.ajax({
url: 'ajax_refresh.php',
type: 'POST',
data: {keyword:keyword},
success:function(data){
$('#country_list_id').show();
$('#country_list_id').html(data);
}
});
} else {
$('#country_list_id').hide();
}
}
function set_item(item) {
// change input value
$('#country_id').val(item);
// hide proposition list
$('#country_list_id').hide();
}