Codeigniter ajax从模型中获取json的值


codeigniter ajax getting the value of json from model

我有麻烦如何从我的控制器得到返回的json到我的视图。数据的传递已经可以了,但我不知道如何解码或获得json编码的具体值。

所有我想要的是存储我的json的特定值到一个变量以供进一步使用。像这样:

$project_name = val.($json['project_name');

下面是我的代码:

function showprojectdetails(projectSelected) {
  var studentId = null;
 $.ajax({
        url : "<?php echo site_url('manager/projects/ProjDetails/')?>/" + projectSelected,
        type: "GET",
        dataType: "JSON",
        success: function(data) {
          $json = json_decode(data, true);
          alert($json['project_code'];);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert('Error get data from ajax');
        }
    });
}

my Controller:

 function ProjDetails($project_title) {
        $data = $this->project->getProjDetails($project_title);
        echo json_encode($data);
    }

My model:

 function getProjDetails($project_title) {
       $this->db->from('project');
        $query = $this->db->query('SELECT * from project where project_code = "'.$project_title.'" ');
        return $query->row();
    }

你不需要在js中解码这个值。Json_encode将数组转换为json字符串。视图中得到的已经是json了。你只需要使用它。

这将在控制台显示json字符串。

console.log(data)
使用

data['project_code']

您应该将PHP函数

json_encode($your_json_string);

with JS

JSON.parse(response);

如:

  function showprojectdetails(projectSelected) {    
   var studentId = null;  
   $.ajax({
    url : "<?php echo site_url('manager/projects/ProjDetails/')?>/" +    projectSelected,
    type: "GET",
    dataType: "JSON",
    success: function(data) {
    var json = JSON.parse(data);
       //do the magic you wanted to do like  alert(json);
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert('Error get data from ajax');
    }
 });
}