如何使用$ .ajax()将字符串数组从PHP传递给Javascript?

我有一个PHP脚本,可以从数据库中检索名称(字符串)。 我想使用$ .ajax()将此数组传递给Javascript。 我无法理解我应该如何在PHP中编码数组然后在Javascript中解码它。 有人可以为此提供示例代码吗? 非常感谢 !!

 

HTML文件:

 $(function() { $.getJSON('http://localhost/test.php', function(data) { $(data).each(function(key, value) { // Will alert 1, 2 and 3 alert(value); }); }); }); 

你可以使用json_encode

 1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?> 

完整示例,您可以阅读:

http://www.prodevtips.com/2008/08/15/jquery-json-with-php-json_encode-and-json_decode/

要么

http://www.prodevtips.com/2009/12/09/multiple-select-lists-with-jquery-and-json/

  'value', 'cool' => 'ice')); ?> 

json是一个javascript对象。 所以没有必要“解码”它。 但是,看起来你正在使用jquery。 有一个很棒的函数可以检索json数据:

 jQuery.getJSON(url, senddata, function(returndata){alert(returndata.cool);}) 

要么

 jQuery.getJSON(url, senddata, function(returndata){mybigfunction(returndata);}) mybigfunction(data) { myvar = data.cool; alert(myvar); } 

http://api.jquery.com/jQuery.getJSON/

或者你也可以用你提到的$ .ajax来做:

 jQuery.ajax({ url: url, dataType: 'json', data: senddata, success: function(data){mybigfunction(data)} }); mybigfunction(data) { myvar = data.cool; alert(myvar); } 

http://api.jquery.com/jQuery.ajax/

“回调”是一个被调用的函数,它传递了从url返回的json数据。

你会’冰’宝贝……呃…对不起玉米。

getJSON方法相当简短且方便。 有关详细信息,请查看链接。

要做到这一点,你只需要将一个脚本回显到包含你的数据的PHP页面,然后你可以从页面上的任何其他Javascript访问它,包括jQuery和.ajax()。

同样,如果您只想通过AJAX调用传递它,只需使用json_encode():

 $groupids, 'groupnamelist'=>$groupnames, 'serverurl'=>$serverurl, 'uid'=>$curuser->getID() ) ); ?> 

然后使用.ajax()的回调函数或者更好的.getJSON() ,它只是为了这个用途而构建的。

我保证我不会在这里垃圾邮件,但是我写了一篇关于在Javascript和PHP之间传递变量的post,因为我经常这样做,我想出了一个简单/可靠/干净且可重用的方法。 如果您经常将数据从PHP传递到Javascript并且不需要AJAX,我会在此处粘贴要点:

在每个外部js文件的顶部,我添加了关于哪些PHP变量是必需的注释,所以我可以跟踪我在包含它时需要的东西(这是可选的,当然,但很好):

 /* This script depends on the following variables in phpvars: groupidlist groupnamelist serverurl uid */ 

然后,在PHP文件中,我用一行Javascript传递所需的变量,为JSON数组分配所有需要的值。 PHP中的示例,直接来自我的代码:

  

一旦设置完成,我就可以通过phpvars数组简单地访问Javascript中我需要的任何PHP变量。 例如,如果我需要使用我的serverurl设置图像源,我可以这样做:

 imgElement.src = phpvars.serverurl + '/images/example.png'; 

因为它使用JSON,所以不必担心通过尝试插入PHP变量来确保您不会在Javascript中搞砸任何东西。 变量的编码/解码由内置的JSON函数在两端处理,因此很难打破它,并且无法传递变量 – 你可以像传统的其他PHP数组一样传递它们。 在导致这种情况的小摆件中,我遇到了这两个问题,这个解决方案可以很好地处理它们。

这是Php文件代码

  

然后你可以像这样解析$array $.ajax() $array

 success: function (data) { var x = JSON.parse(data); console.log(x); }