2017-04-03 63 views
0

我有一个控制器中的函数,将返回一个包含dataBase数据的数组,该数据将作为json文件发送到我的成功函数, 我想在我的模式显示在一个div那些信息,我不能这样做,所以这里是我的控制器功能:在ajax模式下显示数组中的数据与成功功能

public function list_salle($id) 
{ 

$data= $this->salle_model->get_all_salle($id); 


    $this->output->set_output(json_encode($data)); 
      } 

,这里是我的js函数及其AJAX:

function consulter_salle(id) 
     { 

          $.ajax({ 
       url : "<?php echo site_url('index.php/batiment/list_salle')?>/"+id, 
       type: "POST", 
       dataType: "JSON", 
       success: function(data) 
       { 

        var table_header = "<table class='table table-striped table-bordered'><thead><tr><td>head_x</td><td>head_y</td></tr></thead><tbody>"; 
        var table_footer = "</tbody></table>"; 
       var html =""; 



           for (row in data)  
       { 
        html += "<tr><td>"+data.id +"</td><td>"+data.libelle+"</td></tr>"; 
      } 

       var all = table_header +html+ table_footer; 



     // show bootstrap modal when complete loaded 
       $('.modal-title').text('Test'); 
       $('#salle_list').html(all); 
          $('#modal_list').modal('show'); 

       }, 
       error: function (jqXHR, textStatus, errorThrown) 
       { 
        alert('Error displaying data'); 
       } 
      }); 

     } 

这里是我的模态:

<div class="modal fade" id="modal_list" role="dialog"> 
     <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      <h3 class="modal-title">Liste des salles</h3> 
      </div> 
      <div class="modal-body form"> 
      <form action="#" id="form" class="form-horizontal"> 

       <div class="form-body"> 
      <div id="salle_list"></div> 


       </div> 
       </form> 
       <div class="modal-footer"> 
       <button type="button" id="btnSave" onclick="save()" class="btn btn-primary">Save</button> 
       <button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button> 
       </div> 
      </div><!-- /.modal-content --> 
      </div><!-- /.modal-dialog --> 
     </div> 
    </div> 

因此,数据是作为json文件正确发送,但我无法显示它,我认为问题在循环和.html功能,请帮助 谢谢!

+0

如何'data'样子?你可以发布样本吗? –

+0

[{“id”:“1”,“libelle”:“45”,“id_bat”:“1”}] –

+0

so ??有什么建议么? –

回答

0

我找到了一个解决方案:

success: function(data) 
       { 



        var table_header = "<table class='table table-striped table-bordered'><thead><tr><td>Identifiant</td><td>Libelle</td></tr></thead><tbody>"; 
        var table_footer = "</tbody></table>"; 
       var html =""; 

       data.forEach(function(element) { 
       html += "<tr><td>"+element.id +"</td><td>"+element.libelle+"</td></tr>"; 
      }); 



       var all = table_header +html+ table_footer; 

       $('.modal-title').text('Liste des salles'); 

       $('#salle_list').html(all); 
          $('#modal_list').modal('show'); 

       } 
0

你在ajax中的循环看起来应该是一个foreach,但即使这样也是错误的。你正在遍历一个json对象,看看这个问题,如果你想要如何做到这一点的一些选择:How do I iterate over a JSON structure?。一个答案有让这样一个循环:

$(jQuery.parseJSON(JSON.stringify(data))).each(function() { 
    html += "<tr><td>"+this.id +"</td><td>"+this.libelle+"</td></tr>"; 
}