在我的 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");
});
我正在使用代码点火器访问来自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;
}
}
当我控制台.log(数据)时,我得到:
[[Object { id="1", name="scott"}]]
我的问题是,如何使用 script.js 访问各个属性或对象?例如,如何访问该对象数组中名称的值?
$('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对应部分中修复。