通过GET将PHP数组传递给Javascript

时间:2012-11-27 14:39:21

标签: php javascript mysql ajax

我在向PHP发送GET请求后尝试将数组传递给Javascript。 发送和检索数据工作得很好,但我找不到任何关于将数据作为数组传回的信息:

<?php

$result = mysql_query('blablabla');

//converting $result to an array?

echo $result_as_javascript_array;

?>

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

5 个答案:

答案 0 :(得分:2)

将您从MySQL获得的数据转换为JSON。首先按照通常的方式构建一个“普通”PHP数组,然后将其传递给json_encode()函数并返回它。

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

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

答案 1 :(得分:0)

您正在寻找json_encode

答案 2 :(得分:0)

像这样使用json_encode

<?php

$result = mysql_query('blablabla');

//converting $result to an array?

echo json_encode($result);

?>

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

答案 3 :(得分:0)

$arr = array();
while ($row = mysql_fetch_array($result)) {
    $arr[] = $row;
}
echo $arr;

但是,不推荐使用mysql_,而是使用mysqli。

如果您想将其作为JSON传递,请使用:

echo json_encode($arr);

答案 4 :(得分:0)

你应该使用json_encode,它直接将输出分配给一个javascript变量

<?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>