首页 > 解决方案 > 如何将json编码结果从控制器传递到javascript变量

问题描述

我想将 json 编码数组结果从 codeigniter 控制器传递给视图中的 javascript 变量

$.ajax
 ({
  type:'post',
  url: "<?php echo base_url(); ?>" +"",
  data:{
   d_name:d_name,
   d_password:d_password,
   dataType:"json",
  },
  success: function(result) {
    var obj = parseJSON(result);
    var u = obj.d_name; 
    var v = obj.d_password; 
    alert(v);
},
error: function() { 
  alert("error");
}
 });  

我的控制器输出在这里:

string(61) "[{"id":"1","doc_id":"1","d_name":"done","d_password":"done"}]" 

我想将d_name和的值分配d_password给 javascript 变量以进行验证

控制器代码:-

$data['result']=$this->Clinic_model->d_login($d_credentials); 
$result = json_encode($data['result']); 
var_dump($result);die;

标签: javascriptphpajaxcodeigniter-3

解决方案


1.放在dataType:"json",外面data

2.var obj = parseJSON(result);不需要。

3.现在你有数组对象赋值。

您需要执行以下操作:

$.ajax({
    type:'post',
    url: "<?php echo base_url(); ?>",
    data:{
        d_name:d_name,
        d_password:d_password
    },
    dataType:"json",
    success: function(result) {
        var u = result[0].d_name; 
        var v = result[0].d_password; 
        alert(v);
    },
    error: function() { 
        alert("error");
    }
});

echo在您的控制器代码中使用:

$data['result']=$this->Clinic_model->d_login($d_credentials); 
echo $result = json_encode($data['result']);die;

推荐阅读