我写了这段代码从php数组做自动完成但是它没有用,有人可以帮忙吗?
php array
$cars = array("Volvo", "BMW", "Toyota");

我的表格
<form id="frm" method="post">
<input id="cartag" type="text" name="car">
</form>
&#13;
脚本
$(function() {
var availableTags = [ <?php echo implode(',',$cars); ?>];
$( "#cartag" ).autocomplete({
source: availableTags
});
});
&#13;
答案 0 :(得分:7)
如果你想在jQuery中使用php数组,你必须使用json_encode
。
var availableTags = <?php echo json_encode($cars); ?>;
工作演示:
<?php
$cars = array("Volvo", "BMW", "Toyota");
?>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<form id="frm" method="post">
<input id="cartag" type="text" name="car">
</form>
<script>
$(function() {
var availableTags = <?php echo json_encode($cars); ?>;
$( "#cartag" ).autocomplete({
source: availableTags
});
});
</script>
答案 1 :(得分:1)
您需要引用数组中的每个字符串(否则它们将被视为未定义的变量):
var availableTags = [ <?php echo '"' . implode('","', $cars) . '"'; ?> ];
答案 2 :(得分:0)
你需要jquery ui。
这是一个简化版本,不考虑PHP;
jsfiddle
var lst = ["Volvo", "BMW", "Toyota"];
$( "#cartag" ).autocomplete({
source: lst
});
正确地将数组从PHP解析为js:
<script type='text/javascript'>
<?php
$php_array = array('abc','def','ghi');
$js_array = json_encode($php_array);
echo "var javascript_array = ". $js_array . ";\n";
?>
</script>