1

不确定这是否真的可以做到 - 好吧可能可以做到,但超出了我的范围。我有一个这样的php递归数组函数:

function recursive_array($results) {
global $DBH;
if(count($results)) { 
echo $res->Fname;
foreach($results as $res) {  
$STH = $DBH->query("SELECT FID,FParentID,Fname FROM list WHERE FParentID  = " . $res->FID ."" );
$fquerycount = $STH->rowCount();
$STH->setFetchMode(PDO::FETCH_OBJ); 
 recursive_array($STH); 
}}}

它从这样的页面开始:

$FID = isset($_GET['FID']) ? $_GET[' FID'] : 0;
$STH = $DBH->query("SELECT FID,FParentID,Fname FROM list WHERE FParentID ='0' " );
$STH->setFetchMode(PDO::FETCH_OBJ);
recursive_array($STH);

这个功能对我很有效。但它是“普通”的 php。我想做的是创建一个 json 数组而不是echo结果。然后通过JQuery解析结果。我的原因是我正在使用$.getJSON('etc...')带有“中央”数据库的跨域功能。好的,我可以使用 iframe 并在“中央”域创建“模板”页面,但我不希望这样做。(我只是讨厌框架/Iframe)

有什么建议/意见吗?

4

2 回答 2

0

做这个 :

<?php 

$json_results = array();
$json_results[] = $res->Fname;

.
.
.

//And after all iterated convert to json.

echo json_encode($json_results);
于 2011-01-29T08:44:43.770 回答
0

这就是我所做的,实际上是在 javascript 中:

function forall (obj, key, func) {
    if (func) func(obj, key);
    var item = obj[key];
    if (item instanceof Object || item instanceof Array) {
        for (var k in item) {
            forall(item, k, func);
        }
    }
}


forall(obj, key, function(obj, key) {
    console.log('object:'+ obj +'['+key+'] = '+ obj[key]);
});
于 2011-03-21T18:44:05.190 回答