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 访问各个属性或对象?例如,如何访问该 Object 数组中 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 回答