PHP:无法将json输出作为变量值放入我的javascript页面

时间:2013-05-08 13:20:47

标签: php jquery ajax codeigniter

我必须以这种格式获得输出   var sampleTags = ['c++', 'scala'];

我的javascript函数是:

 <script>
            $(document).ready(function(){
        $(function(){  
             var sampleTags;

            $.ajax({
                url:"<?php echo base_url('ajax_get_tags/gettags'); ?>"
            }).done(function(data) {
                if (data) {
                   sampleTags = data;
                }
            });
       ......................
        .......................



 $(function(){  
     var sampleTags = <?php echo json_encode($query) ?>;

我的php控制器是

   function gettags(){
    $json_array=$this->tagsmodel->get_all_tags(); 
   echo json_encode($json_array); 
 }

我的模特是

 //-------------------------------Function get all tags--------------------------------
function get_all_tags() { 
    $this->load->database();
    $this->db->limit('10');
    $this->db->select('tags_name');
    $res = $this->db->get('tags');
    $ret = array();

    foreach ($res->result_array() as $row) {
          $ret[] = $row['tags_name'];
    }

    return $ret;
}

如何从ajax请求中获取json输出以显示其javascript变量的值?  请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您使用的是较旧版本的jQuery,因此.done无效。看起来您想要将一个密钥添加到名为complete的请求对象中,并使用匿名函数作为其值:

$.ajax({
  url: "<?php echo base_url('ajax_get_tags/gettags'); ?>",
  complete: function(data) {
      if (data) {
          sampleTags = data;
      }
  }
});

我通过Google搜索您的错误消息找到了这个。其中一个结果就是这个问题:Object #<XMLHttpRequest> has no method 'done'。您可以直接使用Google搜索错误消息并自己计算出来。

答案 1 :(得分:-1)

我想提出一些建议

  1. 通过使用die或exit打印来检查服务器端的返回值。
  2. 检查firebug net选项卡中的http响应。 3。