[英]How to pass an array of strings from PHP to Javascript using $.ajax()?
我有一个从数据库中检索名称(字符串)的 PHP 脚本。 我想使用 $.ajax() 将此数组传递给 Javascript。 我无法理解我应该如何在 PHP 中对数组进行编码,然后在 Javascript 中对其进行解码。 有人可以为此提供示例代码吗? 非常感谢 !!
<?php // test.php
$myArray = array(1, 2, 3);
echo json_encode($myArray);
?>
HTML文件:
$(function() {
$.getJSON('http://localhost/test.php', function(data) {
$(data).each(function(key, value) {
// Will alert 1, 2 and 3
alert(value);
});
});
});
你可以使用json_encode
<?php
$arr = array ('a'=>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/
<?php
echo json_encode(array('key' => '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():
<?php
echo json_encode(
array(
'groupidlist'=>$groupids,
'groupnamelist'=>$groupnames,
'serverurl'=>$serverurl,
'uid'=>$curuser->getID()
)
);
?>
然后使用.ajax()
的回调函数处理它,或者更好的是.getJSON()
,它专为这种用途而构建。
我保证我不仅在这里发垃圾邮件,而且我写了一篇关于在 Javascript 和 PHP 之间传递变量的文章,因为我经常这样做,所以我想出了一种简单/可靠/干净且可重用的方法来做到这一点。 如果您经常将数据从 PHP 传递到 Javascript 并且不需要 AJAX,我将在此处粘贴要点:
在每个外部 js 文件的顶部,我添加了关于需要哪些 PHP 变量的注释,这样我就可以在包含它时跟踪我需要的内容(这是可选的,当然,但很好):
/* This script depends on the following variables in phpvars:
groupidlist
groupnamelist
serverurl
uid
*/
然后,在 PHP 文件中,我用一行 Javascript 传递所需的变量,为一个 JSON 数组分配所有需要的值。 PHP 中的示例,直接来自我的代码:
<script type="text/javascript">
var phpvars = <?php
echo json_encode(
array(
'groupidlist'=>$groupids,
'groupnamelist'=>$groupnames,
'serverurl'=>$serverurl,
'uid'=>$curuser->getID()
)
);
?>;
</script>
一旦设置完成,我就可以通过phpvars
数组简单地访问我在 Javascript 中需要的任何 PHP 变量。 例如,如果我需要使用我的 serverurl 设置图像源,我可以执行以下操作:
imgElement.src = phpvars.serverurl + '/images/example.png';
因为它使用 JSON,所以不必担心通过尝试插入 PHP 变量来确保您不会在 Javascript 中搞砸任何事情。 变量的编码/解码由内置的 JSON 函数在两端处理,因此很难破坏它,并且传递变量是无脑的 - 您可以像传递任何其他 PHP 数组一样传递它们。 在导致此问题的摆弄中,我在这两个方面都遇到了问题,而此解决方案很好地解决了这些问题。
这是 PHP 文件代码
<?php
$array = array(1, 2, 3);
echo json_encode($array);
?>
然后你可以像这样在你的$.ajax()
解析$array
success: function (data) {
var x = JSON.parse(data);
console.log(x);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.