我有一个自动完成的脚本,它使用php / jquery从数据库中检索信息。
<script type="text/javascript">
$(function() {
var availableTags = <?php include('autocomplete.php'); ?>;
$("#artist_name").autocomplete({
source: availableTags,
autoFocus:true
});
});
</script>
我遇到的问题是显示html字符“é”,“&amp;”和“ó”以é
&
和é
我无法获取javascript代码来显示用户选择的html字符。
如果我将html实体更改为数据库中的特殊字符,则自动完成脚本将完全停止工作。
我在Stackoverflow上找到了这个可能的解决方案,但我不知道如何在我自己完成的javascript中实现它,或者它是否能解决我的问题。
<script>
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}
htmlDecode("<img src='myimage.jpg'>");
// returns "<img src='myimage.jpg'>"
</script>
我不精通javascript编码。如何解码自动完成脚本中的html实体。请帮忙。感谢。
Autocomplete.php代码:
<?php
$connection = mysqli_connect("localhost","root","root","database_name") or die("Error " . mysqli_error($connection));
//fetch artist names from the artist table
$sql = "select artist_name from artist_names";
$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));
$dname_list = array();
while($row = mysqli_fetch_array($result))
{
$dname_list[] = $row['artist_name'];
}
echo json_encode($dname_list);
?>
答案 0 :(得分:0)
请选择其中一种(但不是两者)
PHP解决方案:
如果要解码html实体,可以先在<body onload="resetSelection()">
<select id="countrySelect" size="1" onchange="makeSubmenu(this.value)">
<option></option>
<option>USA</option>
<option>Singapore</option>
<option>India</option>
</select>
<select id="citySelect" size="1">
<option></option>
</select>
</body>
中使用php的内置html_entity_decode()
函数:
autocomplete.php
JS解决方案:
看看jQueryUI's doc,您可以使用它来构建自己的$dname_list = array();
while($row = mysqli_fetch_array($result))
{
$dname_list[] = html_entity_decode($row['artist_name']);
}
echo json_encode($dname_list);
元素,这样就可以了:
<li>