在我的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(数据)时,我得到:
[[Object { id="1", name="scott"}]]
我的问题是,如何使用script.js访问各个属性或对象? 例如,如何访问该Object数组中name的值?
答案 0 :(得分: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"
}
]
]
因此你需要语法数据[0] [0] [name];这应该很容易在PHP计数器部分修复。