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


PHP: Unable to get the json output into my javascript page as a variable value

我必须得到这种格式的输出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变量?请帮我解决这个问题

您使用的是旧版本的jQuery,因此.done将无法工作。它看起来像你想添加一个键到你的请求对象称为complete,与匿名函数作为其值:

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

我通过谷歌搜索你的错误信息发现了这个。其中一个结果是这个问题:object# 没有方法'完成'

我想给一些建议

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