PHP - Создать рекурсивный анализ массива json в JQuery - PullRequest
1 голос
/ 29 января 2011

не уверен, можно ли это на самом деле сделать - ОК, вероятно, можно сделать, но за меня. У меня есть рекурсивная функция массива 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...') для междоменной функциональности с «центральной» БД. Хорошо, я могу использовать Iframes и просто создавать «шаблонные» страницы в «центральном» домене, но я бы предпочел не делать этого. (Я просто ненавижу кадры / Iframes)

Есть предложения / комментарии?

Ответы [ 2 ]

0 голосов
/ 21 марта 2011

Это то, что я сделал, на самом деле в 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]);
});
0 голосов
/ 29 января 2011

Сделайте это:

<?php 

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

.
.
.

//And after all iterated convert to json.

echo json_encode($json_results);
...