0

我正在处理一个表格。当用户单击按钮时,ajax 发送值,然后控制器加载模型和查询数据库以返回一个或一些注册表。

但是,当返回时,我得到了响应,但似乎是从表中获取所有数据而不是执行 where 子句。我也无法将此结果放入 div

--model

function get($where=array()) {
   $q = $this->db->get_where('tbl_name',$where);
   $result = $q->result_array();
   return $result;
}

-- controller

function get_em()
{   
  $key = $this->input->post('key');
  $this->load->model('model');
  $data['result'] = $this->model->get_em( array('id_guy' => $key)) ;
  header('Content-type: text/plain'); 
  echo json_encode($data);
}


--jquery
$(document).ready(function() {

   $('#btn').click(function(){
   var key = $("#key").val();     
   var postData = {
    'key' : key
   };
   $.ajax({
    type: "POST",
    url: "<?php echo base_url()?>index.php/controller/get_em",
    //data: postData , 
    dataType:"json",
    data: postData,
    success: function(response) {
            $.each(response, function(index,item){
              $("#wrapper_succes").append('<div><b>' + index[0] + '</b></div><hr />');
            });
        }
    });
    });
});

如何根据某些条件在从数据库中选择字段的 div 结果中打印结果,因为它们在控制器中返回,$query->result_array()所以在控制器中我理解 $data['result'] = $this->model->存储在 结果中,所以在 php 中我只会在$result中循环...但是如何使用 ajax 执行此操作,我无法打印任何结果,我只得到未定义或 [Object Object] 的东西,当使用 firebug 进行调试时,我可以看到响应如下所示:

{"result":[{"id_guy":"1","name":"joe",....,"last":"last man"}, ....
4

1 回答 1

0

如果你的反应看起来像{"result":[{"id_guy":"1","name":"joe",....,"last":"last man"}]}.

然后你有:

  • 具有Object属性“结果”的一个Array
  • 此数组包含具有您要显示的属性的对象

直接$.each在 response 上使用只会循环一次带有值:

index = result;
item = [{"id_guy":"1","name":"joe",....,"last":"last man"}] 

请注意,由于 item 包含 an如果object[object Object]尝试将其转换为String

这意味着您必须遍历result,循环array,然后循环object属性。

给出类似的东西(小提琴):

    $.each(response.result, function(index,item){
        $.each(item, function(index,item){
           $("body").append(index + " " + item + " ; ");
        });
        $("body").append("<BR>");
    });
于 2014-02-21T15:02:19.750 回答