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です。私がやりたいのはecho、結果を出力するのではなく、json 配列を作成することです。次に、JQuery を使用して結果を解析します。私の理由は$.getJSON('etc...')、「中央」DB でクロスドメイン機能を使用しているためです。Iframe を使用して、「中央」ドメインに「テンプレート」ページを作成することはできますが、私はしたくありません。(私はフレーム/ Iframeが嫌いです)

提案/コメントはありますか?

4

2 に答える 2

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 に答える
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 に答える