2017-07-25 120 views
0

我要循环使用JSON表,使用foreach循环的笨

我的返回值是

Array(
[0]Array(
[m_id]=>2 
[event_id]=>37 
[activity_id]=>20 
) 
[1]Array(
[m_id]=>20 
[event_id]=>3 
[activity_id]=>2 
) 
) 

我的剧本是

function get_out_mail(user_name){      
        var datastring = 'user_name=' + user_name; 
        alert(datastring); 
        var a = false; 
        $.ajax({ 
          type: "POST", 
          async: false, 
          url: "<?php echo site_url(); ?>admin/get_out_mails", 
          data: datastring, 
          cache: false, 
          success: function (result) { 
           alert(result); 
           var result = $.parseJSON(result); 
           console.log(result.from); 
           $('#myTable').html(''); 
           $("#myTable").append('<tbody><?php foreach ($get_all_mail as $get_all_mails) { ?><tr id="target-list"><td><input type="checkbox" id="mail-checkbox-1" class="custom-checkbox"></td><input type="hidden" name="mid" value="<?php echo $get_all_mails['m_id']; ?>"/><td><i class="glyph-icon icon-star"></i></td><td class="email-title" ><?php echo $get_all_mails['from']; ?></td><td class="email-body" ><?php echo $get_all_mails['subject'] ?></td><td><i class="glyph-icon icon-paperclip"></i></td><td>17 Jan 2014</td></tr><?php } ?></tbody>'); 
          } 
         }); 
         return a; 
        } 

我控制器

public function get_out_mails(){ 
    if ($this->session->userdata('admin_logged_in')) { 
     $user_name = $this->input->post('user_name'); 
     $result['out_mail'] = $this->admin_model->get_out_mailss($user_name); 
     print_r($result['out_mail']); 
} 

在这里,我想用foreach循环追加在JSON我回来数组值,我怎么能做到这一点。

+0

PHP的foreach将无法工作在$阿贾克斯() –

回答

0

据Ajax请求这是更好的查看页面附加的控制器返回完整的HTML部分,而不是:

例控制器:

echo $values ="<body> 
     <tr> test</tr> 
    </body>"; 

View : Success : function(data){ 
    $('#id').html(data); 
} 

这样,您将隐藏完整的循环从查看页面并获取控制器中的代码

0

用此替换您的控制器功能:

public function get_out_mails(){ 
    if ($this->session->userdata('admin_logged_in')) { 
     $user_name = $this->input->post('user_name'); 
     $result['out_mail'] = $this->admin_model->get_out_mailss($user_name); 
     $data = '<tbody>'; 
     foreach ($get_all_mail as $get_all_mails) { 
      $data .= '<tr id="target-list"><td><input type="checkbox" id="mail-checkbox-1" class="custom-checkbox"></td><input type="hidden" name="mid" value="'.$get_all_mails['m_id'].'"/><td><i class="glyph-icon icon-star"></i></td><td class="email-title" >'.$get_all_mails['from'].'</td><td class="email-body" >'.$get_all_mails['subject'].'</td><td><i class="glyph-icon icon-paperclip"></i></td><td>17 Jan 2014</td></tr>'; 
     } 
     $data .= '</tbody>'; 
     echo $data; 
} 

而且,这种替换你的脚本:

function get_out_mail(user_name){ 
    alert(datastring); 
    var a = false; 
    $.ajax({ 
     type: "POST", 
     async: false, 
     url: "<?php echo site_url(); ?>admin/get_out_mails", 
     data: {'user_name': user_name}, 
     cache: false, 
     success: function (result) { 
      alert(result); 
      var result = $.parseJSON(result); 
      console.log(result.from); 
      $('#myTable').html(result); 
     } 
    }); 
    return a; 
}