jQuery Autocomplete 仅适用于大写
Posted
技术标签:
【中文标题】jQuery Autocomplete 仅适用于大写【英文标题】:jQuery Autocomplete only works with UPPER CASE 【发布时间】:2016-03-22 10:26:11 【问题描述】:我有一个带有一些自定义 php 编码的 WordPress 网站。我不知道发生了什么变化,但我注意到我的自动完成字段不再正常工作。
我有一个表单字段,在其中输入玩家姓名,输入三个字符后,我会从数据库中检索可能匹配的列表以供选择。我今天注意到,它仍在工作,但只是在我在 player2 字段中输入时使用所有大写字母的情况下。如果我使用常规字母,我总是从数据库中获取前 10 条记录,而不管搜索词是什么。奇怪的!!!
这是我的表单 jquery 代码:
<script type="text/javascript">
jQuery(document).ready(function($)
$('#player2').autocomplete(
source:'/wp-content/themes/canvas-child/suggest-pid2.php',
minLength:2,
autoFocus: true,
select: function (event, ui)
// Set autocomplete element to display the label
this.value = ui.item.playername;
// Store value in hidden field
$('#PlayerID').val(ui.item.value);
// Prevent default behaviour
return false;
);
);
</script>
这是我从数据库中获取记录的搜索代码:
<?php
// get search term (player name or surname)
$term = $_REQUEST['term'];
if (isset($term))
$dblink = mysql_connect('localhost', 'un', 'pw') or die( mysql_error() );
mysql_select_db('db');
$sql = "SELECT " .
"P.PlayerID, P.PlayerName, P.PlayerSurname, C.CityName, " .
"DATE_FORMAT(P.PlayerDateOfBirth, '%Y') AS PlayerYearOfBirth " .
"FROM players P " .
"LEFT JOIN cities C ON C.CityID = P.CityID " .
"WHERE P.PlayerName LIKE '" . $term . "%' " .
"OR P.PlayerSurname LIKE '" . $term . "%' " .
"ORDER BY P.PlayerName, P.PlayerSurname ASC LIMIT 0,10;";
// Important - UTF-8!!!
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $dblink);
$rs = mysql_query($sql, $dblink);
$data = array();
if ( $rs && mysql_num_rows($rs) )
while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
$data[] = array(
'label' => $row['PlayerName'] .' '. $row['PlayerSurname'] .' ('. $row['PlayerYearOfBirth'] .'), '. $row['CityName'] ,
'value' => $row['PlayerID'] ,
'playername' => $row['PlayerName'] .' '. $row['PlayerSurname']
);
echo json_encode($data);
flush();
?>
有什么想法吗?
【问题讨论】:
【参考方案1】:您可以将字符串转换为大写以进行查询
【讨论】:
我试过了,但这不起作用。看起来如果以小写形式输入搜索词,它会被识别为空字符串。【参考方案2】:我从头开始重新创建文件,现在它可以工作了。我不知道出了什么问题,但看起来 php 文件已损坏。现在工作。
【讨论】:
以上是关于jQuery Autocomplete 仅适用于大写的主要内容,如果未能解决你的问题,请参考以下文章