我有一个PHP数组,我想传递给我的jquery(用我的php数组替换测试数组)。
Array
(
[12] => Some Text
[6] => Another text
[11] => one more text
)
Jquery的:
$('#SearchUser').typeahead({
source: [
{ ID: 1, Name: 'Toronto' },
{ ID: 2, Name: 'Montreal' },
{ ID: 3, Name: 'New York' },
{ ID: 4, Name: 'Buffalo' },
{ ID: 5, Name: 'Boston' },
{ ID: 6, Name: 'Columbus' },
{ ID: 7, Name: 'Dallas' },
{ ID: 8, Name: 'Vancouver' },
{ ID: 9, Name: 'Seattle' },
{ ID: 10, Name: 'Los Angeles' }
],
display: 'Name',
val: 'ID',
itemSelected: updateID
});
那么如何将“source”的var设置为我的php数组?
建议?
一如既往,你太棒了!
- 汤姆
答案 0 :(得分:1)
你可以使用php的json_encode函数将php数组转换为json。然后你可以使用json作为javascript数组。
http://www.php.net/manual/en/function.json-encode.php
我不知道你是如何从php代码获取数据到javascript代码的,但是如果你将数据打印为json,你可以通过ajax调用来获取它。
答案 1 :(得分:1)
我是如何在我的一个项目中完成的,
$.get("<?= $baseUrl ?>search/data", function (data) {
var dataObject = JSON.parse(data);
$('#q').typeahead({
'source': dataObject,
// 'items': 5
});
});
我的搜索控制器的数据方法是:
echo (json_encode($arr)); // $arr is ["a","b","c"] etc. but you can have an associated array too.
基本上,显示我的代码的意思是使用json
答案 2 :(得分:0)
使用PHP的json_encode()
函数创建一个有效JSON的字符串,然后使用jQuery的$.getJSON()
读取它。
这样的事情:
<强> get_array.php 强>
$someArray = /* whatever */;
echo json_encode($someArray);
<强> read_array.js 强>
$.getJSON('get_array.php', function(data) {
// data now contains your array
});
或者,您可以这样做:
<script type="text/javascript">
var someArray = <?php echo json_encode($someArray); ?>
</script>
如果您不想要单独的文件,并且不介意使用全局变量。
答案 3 :(得分:0)
您可以执行以下操作:
<script type="text/javascript">
var jsArray = <?php echo json_encode($phpArray); ?>
</script>
但将语言X与语言Y混合是一种不好的做法。
好吧,看看我对这篇文章的回答,你可以用更好的方式做到以下几点:
Is echoing Javascript code condtionally based on server-side logic considered harmful?
希望这会有所帮助: - )