0

client.html

各ボックスとその中のスタイルをループアウトするために、クライアント エンドでこの json データ取得をどのように記述できますか。

このようなものは機能しません...

success:  function(output) {
    var records = output.data;
    var str = "";

    if (records) {
        alert(records.length);

        for (var i = 0; i < records.length; i++) {
            for (var j in records[i]) {
                str += j + " --> " + records[i][j] + "\n";
            }
        }
    }
}

test.php

$sql= "select id, style from table";
$result = mysql_query ($sql);

while($r = mysql_fetch_assoc($result)) {
    $id = $r['id'];
    $rows[$id] = $r;
}

$data = array(
    'data' => $rows,
    'debug' => $msg,
    'status'    => 1
);

ビルド機能でphpを使用してjsonに変換した後のデータ。(私が欲しいフォーマット)

{
    "data": {
        "box1": { "style":"position: absolute;", "id":"box1" },
        "box2": { "style":"position: relative;", "id":"box2" },
        "box88": { "style":"position: relative;", "id":"box3" }
    },
    "debug":"feedback to client end",
    "status":1
}
4

1 に答える 1

0

@Rory、オブジェクト属性を配列であるかのように反復しているという関数 ID の問題。次のコードで問題が解決すると思います(このフィドルで動作することもわかります)。

function process(records) {
    result = [];
    for(var rec in records) {
        var row = [rec + "->"];
        for(var stl in records[rec]) {
            row.push("\t" + stl + "->" + (records[rec][stl]));
        }
        result.push(row.join("\n"));
    }

    $("#result").html(result.join("\n"));
}

// var obj = { your original data }
process(obj.data);
于 2012-05-18T10:34:39.380 に答える