2

JQuery を使用して複数のアイテムを更新しようとしています (スパン タグの場合)。html dataType を使用して単一のアイテムを更新することはできましたが、アイテムの配列を参照する正しい方法を見つけることができませんでした。

問題は以下の setData 関数にあるようです。通常の配列として参照しようとしましたが、うまくいかないようです。

これはJQueryです:

<script>
$(document).ready(function () {
    $(".hook1").change(function () {
        pass_id = (this.value);
        var seltop = $(this).attr('id');
        var lastchar = seltop.slice(-1);
        $.ajax({
            type: "POST",
            url: "comp_data.php",
            dataType: "json",
            data: {
                passval: pass_id,
                pass2: lastchar
            },
            success: function setData(data) {
                $("#price" + lastchar).html(data[0].price);
                $("#matricule" + lastchar).html(data[1].matricule);
                $("#tag" + lastchar).html(data[2].tag);
                $("#ins_yr1" + lastchar).html(data[3].ins_yr1);
                $("#Totalacq" + lastchar).html(data[4].Totalacq);
            }

        });
    });
});
</script>

これは、comp_data.php ファイルの関連部分です。

<?php
$version_id = $_REQUEST['passval'];
$i = $_REQUEST['pass2'];

mysql_query("CREATE OR REPLACE VIEW vcomp AS (SELECT......");

$return = array(
    "price" = > "",
    "matricule" = > "",
    "tag" = > "",
    "ins_yr1" = > "",
    "Totalacq" = > ""
);

$name = array_keys($return);
$ct = count($name);
$n = 0;
while ($n < $ct) {
    $key = $name[$n];
    $sql2 = mysql_query("SELECT *
    FROM vcomp
    ORDER BY segment_id,price
    ");
    while ($row = mysql_fetch_assoc($sql2)) {
        $return[$key] = $row[$key];
    }
    $n++;
}
$returnJSON = json_encode($return);
echo $returnJSON;

$returnJSON のこの最後のエコーは、

{"price":"1014000","matricule":"10000","tag":"6000","ins_yr1":"25350","Totalacq":"1055350"}  

それがsetData関数で出力したいものです。
アイデアをいただければ幸いです。

4

1 に答える 1

1

PHPはわかりませんが、今読んだところから、「連想配列」があります。そしてこれは、連想配列がによってjson_encode()オブジェクトに変換されることを示しています。したがって、次を使用する必要があります。

$("#price" + lastchar).html(data.price);
$("#matricule" + lastchar).html(data.matricule);
$("#tag" + lastchar).html(data.tag);
$("#ins_yr1" + lastchar).html(data.ins_yr1);
$("#Totalacq" + lastchar).html(data.Totalacq);
于 2013-03-02T19:59:55.557 に答える