0

在向 PHP 发送 GET 请求后,我试图将数组传递给 Javascript。发送和检索数据工作完美,但我找不到任何关于将数据作为数组传回的信息,如下所示:

<?php

$result = mysql_query('blablabla');

//converting $result to an array?

echo $result_as_javascript_array;

?>

<script>
$('result').innerHTML = httpGet.responseText
</script>
4

5 回答 5

2

将您获得的数据转换MySQLJSON. 首先像往常一样构建一个“正常”的 PHP 数组,然后将它传递给json_encode()函数并返回它。

在客户端,您必须将JSON字符串解析为 JS 数组或对象。有关详细信息,请参阅此 SO 问题:Parse JSON in JavaScript?

请使用其他东西来访问 MySQL。您使用的扩展基本上已经过时:http ://si1.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated

于 2012-11-27T14:41:46.530 回答
0

您正在寻找json_encode.

于 2012-11-27T14:42:04.233 回答
0

像这样使用json_encode

<?php

$result = mysql_query('blablabla');

//converting $result to an array?

echo json_encode($result);

?>

您可能不希望将响应文本直接放入元素的 innerHTML 中,除非您想在元素中显示 json 文本。

于 2012-11-27T14:43:09.940 回答
0
$arr = array();
while ($row = mysql_fetch_array($result)) {
    $arr[] = $row;
}
echo $arr;

但是,不推荐使用 mysql_,请改用 mysqli。

如果要将其作为 JSON 传递,请使用以下命令:

echo json_encode($arr);
于 2012-11-27T14:43:23.420 回答
0

当直接将输出分配给javascript变量时,您应该使用效果很好的json_encode

<?php

$result = mysql_query('blablabla');

//first convert result to an associative array
$myarray = array();
while($fetch = mysql_fetch_assoc($result)){
    $myarray[]=$fetch;
}

//converting $result to an array?
echo "<script>";
echo "var myArray = ".json_encode($myarray).";";
echo "</script>";
?>

<script>
//now you can use myArray global javascript variable
$('result').innerHTML = myArray.join(",");
</script>
于 2012-11-27T14:44:26.977 回答