如何使用$ .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); }