0

我有一个具有以下脚本的控制器

class get extends CI_Controller
{
    function get_password()
    {
        $this->load->model('fetch_model');
        $user_pass=$this->fetch_model->get_password(); 
        $data['user_pass'] = json_encode($user_pass);
        echo $data['user_pass'];
    }
}

和视图页面上的脚本是这样的

function get_password(){
    $.post("<?php echo base_url();?>admin.php/get/get_password",function(data)
    {      
        for(i=0;i<data.length;i++)
        {
            $('#password').val(data[i].password);
            $('#username').val(data[i].username);
        }
    },"json");
}

现在,如果我在模型中使用以下脚本,那么 ajax 帖子可以完美运行..

class fetch_model extends CI_Model
{
    function get_password()
    {
        return  $this->db->query("SELECT * FROM td_admin_user")->result_array();
    }
}

但是当我将模型脚本更改为此时,ajax 脚本不起作用

class fetch_model extends CI_Model
{
    function get_password()
    {
        foreach($this->db->query("SELECT * FROM td_admin_user")->result() as $r_pass)
        {
            $pass=$r_pass->password;
            $user=$r_pass->username;
        }
        $user_pass=array('username'=>$user,
                         'password'=>$pass);
        return $user_pass;
    }
}

但坦率地说,我需要通过以下方式发送数据

$user_pass  =   array('username'=>$user, 'password'=>$pass);

而不是 result_array()

所以请在这种情况下帮助我,在此先感谢

4

1 回答 1

0

这不是错误!您是否甚至查看了每次调用中返回的数据类型?

在您的 JS 中,您正在使用:

$('#password').val(data[i].password);

索引数组在哪里data- 正是返回的内容->result_array()

但是你希望它是一个基于键的数组:

$user_pass=array('username'=>$user, 'password'=>$pass);

如果是这种情况,您应该忘记在 JS 上使用 for 循环(特别是如果您的查询只产生一行)并使用

 $('#password').val(data.password);

反而。

还要查看console.log(如果您使用的是萤火虫/开发者工具)并尝试print_rvar_dump在 PHP 端了解您返回的数据格式。

于 2013-02-04T18:13:24.857 回答