【问题标题】:autocomplete from php array从php数组自动完成
【发布时间】:2016-04-21 00:18:59
【问题描述】:

我编写了这段代码来从 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
	});
});

【问题讨论】:

  • 告诉我们你的 JS 在 PHP 执行后是什么样子的。
  • 对不起,我是初学者,如何告诉你执行后的样子?

标签: javascript php arrays autocomplete


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 你包含jquery ui吗?
    • 是的,我愿意
    【解决方案3】:

    你需要 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>
    

    【讨论】:

    • 我需要自动将php数组放入java数组中,你建议怎么做?
    猜你喜欢
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    相关资源
    最近更新 更多