将现有的php数组传递给jquery

我有一个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数组呢?

建议?

一如既往,你真棒!

-Tom

我是如何在我的一个项目中完成的,

 $.get("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

你可以使用php的json_encode函数将php数组转换为json。 然后你可以使用json作为javascript数组。

http://www.php.net/manual/en/function.json-encode.php

我不知道你如何从php代码获取数据到javascript代码,但如果你打印数据为json,你可以通过ajax调用。

使用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 }); 

或者,您可以这样做:

  

如果您不想要单独的文件,并且不介意使用全局变量。

您可以执行以下操作:

  

但是将语言X与语言Y混合是一种不好的做法。

那么,看看我对这篇文章的回答,你可以用更好的方式做到以下几点:

是否基于被认为有害的服务器端逻辑来回应Javascript代码?

希望这可以帮助 :-)