从 php 数组自动完成

autocomplete from php array

我写了这段代码来从 php 数组自动完成但是它不起作用,有人可以帮忙吗?

php数组

$cars = array("Volvo", "BMW", "Toyota");

我的表格

<form id="frm" method="post">
<input id="cartag" type="text" name="car">
</form>

脚本

$(function() {
var availableTags = [ <?php echo implode(',',$cars); ?>];
 $( "#cartag" ).autocomplete({
 source: availableTags
 });
});

你需要jqueryui.
这里是简化版,没有考虑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>

您需要引用数组中的每个字符串(否则它们将被视为未定义的变量):

var availableTags = [ <?php echo '"' . implode('","', $cars) . '"'; ?> ];

如果您想在 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>