首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MYSQL Data JSON PHP array -> Javascript (或Jquery)如何传递数据?

MYSQL Data JSON PHP array -> Javascript (或Jquery)如何传递数据?
EN

Stack Overflow用户
提问于 2010-04-30 00:49:08
回答 4查看 3.1K关注 0票数 1

我从一个新的网站开始(这是我的第一个),我遇到了很大的麻烦!我写了这段代码

代码语言:javascript
运行
复制
<?php
    include("misc.inc");
    $cxn=mysqli_connect($host,$user,$password,$database) or die("couldn't connect to server");
    $query="SELECT DISTINCT country FROM stamps";
    $result=mysqli_query($cxn,$query) or die ("couldn't execute query");
    $numberOfRows=mysqli_num_rows($result);

    for ($i=0;$i<$numberOfRows;$i++){
        $row=mysqli_fetch_assoc($result);
        extract($row);
        $a=json_encode($row);
        $a=$a.",";
        echo $a;
    }
?>

输出结果如下:

代码语言:javascript
运行
复制
{"country":"liechtenstein"},{"country":"romania"},{"country":"jugoslavia"},{"country":"polonia"},

这应该是一个正确的JSON输出...

我现在如何在Jquery中获取它?我试着用

代码语言:javascript
运行
复制
$.getJSON 

但我不能正确地融合它。我还不希望将数据传递到DIV或类似的HTML中。

作为更新,Andres Descalzo的代码可以工作!

代码语言:javascript
运行
复制
<?php
    include("misc.inc");
    $cxn=mysqli_connect($host,$user,$password,$database) or die("couldn't connect to server");
    $query="SELECT DISTINCT country FROM stamps";
    $result=mysqli_query($cxn,$query) or die ("couldn't execute query");
    $numberOfRows=mysqli_num_rows($result);

    echo "{data: [";
    for ($i=0; $i<$numberOfRows; $i++){
        $row=mysqli_fetch_assoc($result);
        extract($row);
        $a = (($i!=0)?",":"") . json_encode($row);
        echo $a;
    }
    echo "]}";
?>

输出正确,如下所示:

代码语言:javascript
运行
复制
{data: [{"country":"liechtenstein"},{"country":"romania"},{"country":"jugoslavia"},{"country":"polonia"}]}

如何使用$getJSON

语法是这样的

代码语言:javascript
运行
复制
$.getJSON( url, [ data ], [ callback(data, textStatus) ] )

url就是上面提到的PHP文件,但是[data]和回调函数?

EN

Stack Overflow用户

发布于 2010-04-30 01:04:50

请注意,JSON字符串不是有效的JSON字符串!我建议您在生成输出之前使用一次json_encode。你可能会这么做:

代码语言:javascript
运行
复制
$countries = array();
for ($i=0;$i<$numberOfRows;$i++){
    $row=mysqli_fetch_assoc($result);

    //Not needed, I guess
    //extract($row); 

    $countries[] = $row;

    //More probably, you want to get only the country name
    //$countries[] = $row['country'];
}

$result = json_encode( $countries );
echo $result;

希望它是正确的,我还没有测试它:)

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2739160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档