0

scrip.jsファイル内から、jquery $ .post関数を使用してデータを投稿しています(実際、現時点では、データを読み取ることができるように、コールを機能させようとしています)。

 $('document').ready(function(){

    $.post("index.php/main/showData", 
     function(data){
        console.log(data);
        for (var name in data){
            alert(name);
        }
     }, "json");
});

私はcodeigniterを使用してmysqlからのデータにデータにアクセスしています:

class Main extends CI_Controller
{
    function showData()
{
    $this->load->model('ajax');
    $array = array($this->ajax->getRecArray());

    // $this->index();
    echo json_encode($array);
}

私のモデル

class Ajax extends CI_Model
{
    function getRecArray()
{
    $query = $this->db->query("SELECT * FROM record_table WHERE id = 1");
    $row = $query->result();
    return $row;
}
}

console.log(data)を取得すると、次のようになります。

[[Object { id="1", name="scott"}]]

私の質問は、script.jsを使用して個々のプロパティまたはオブジェクトにアクセスするにはどうすればよいですか?たとえば、そのオブジェクト配列のnameの値にアクセスするにはどうすればよいですか?

4

1 に答える 1

1
 $('document').ready(function(){

    $.post("index.php/main/showData", 
     function(data){
        console.log(data);
        for (var name in data[0][0]){
            alert(data[0][0][name]);
        }
     }, "json");
});

それはそれを行う必要があります。

for .. in を使用してオブジェクトを反復処理すると、指定された変数にはデータが含まれず、メンバー名の文字列が含まれます。JS では、構文 data.member または data["member"] によってオブジェクト メンバーにアクセスできます。この場合、文字列があるため、後者を使用する必要があります。

さらに、この特定のケースでは、データは配列内にある配列内のオブジェクトです。レベルごとに分類された返されるデータは次のとおりです。

[
    [
        Object { 
            id="1", 
            name="scott"
        }
    ]
]

したがって、構文 data[0][0][name]; が必要な理由 これは、PHP カウンター部分で簡単に修正できるはずです。

于 2012-07-03T01:34:59.680 に答える