繁体   English   中英

Codeigniter没有传递数组来查看

[英]Codeigniter not passing array to view

我正在为项目使用codigniter,需要添加导入功能。 我正在尝试将解析的csv文件作为数组传递给视图,但是当我传递该数组时,该数组似乎为空。

这是解析csv并加载视图的方法

public function confirm($targetFile){
        $data = array(
            'import_url' => site_url(array('import', 'confirm'))
            );
        $data = array();
        $config = new LexerConfig();
        $lexer = new Lexer($config);

        $interpreter = new Interpreter();
        $i=0;
        $data_array =array();
        $interpreter->addObserver(function(array $columns) use (&$i, &$data_array){
            if($i == 0){
                $i = $i + 1;
            }else{
                array_push($data_array,$columns);
            }
            return $data_array;
        }

        );


        $lexer->parse($targetFile, $interpreter);
        print_r($data_array);
            // $j=0;
            // while($j < sizeof($data_array)){
            //  $valid = $this->validateRow($data_array[$j],$j);
            //  if($j == 0){
            //      //print_r($data_array[$j]);
            //  }
            //  if($valid){
            //      //echo 'true';
            //  }else{
            //      //echo 'false';
            //  }
            //  $j++;
            // }


        return  $this->load->view('import/view',$data_array);  ;
    }

这是视图

<?php $this->load->view('include/site_header'); ?>
<?php 
   if(!empty($data_array)){
      foreach((array)$data_array as $data){
   print_r($data[0]);
   }
   }
?>
<div id="content" class="gradient gray">
   <h1 class="header">
   Import Contacts</h3>
   <form id="import_form" action="" method="post" target="_blank">
      <h2 class="header">
      Confirm import</h3>
      <fieldset id="fields">
         <div class="clearfix">
            <table style="width:100%;">
               <tr>
                  <td>fname</td>
                  <td>lname</td>
                  <td>company</td>
               </tr>
            </table>
         </div>
      </fieldset>
   </form>
</div>
<?php $this->load->view('include/site_footer'); ?>

之所以有趣,是因为方法中的数组在解析后不为空。

Array ( 
  [0] => Array ( [0] => 1 [1] => Kathleen [2] => L[3] => k@mysite.com [4] => Female [5] => 111.111.44.111 ) 
  [1] => Array ( [0] => 2 [1] => Craig [2] => >G[3] => c@site.com [4] => Male [5] => 111.111.77.111) 
  [2] => Array ( [0] => 3 [1] => Kathy [2] => R[3] => k@site.net [4] => Female [5] => 111.111.88.111) 
  [3] => Array ( [0] => 4 [1] => Annie [2] => R[3] => a@any.net [4] => Female [5] => 111.111.99.111 ) 
  [4] => Array ( [0] => 5 [1] => Chris [2] => D[3] => c@blabla.com [4] => Male [5] => 111.111.66.111 ) 
)

更改:

$this->load->view('import/view', $data_array);

至:

$this->load->view('import/view', array("data" => $data_array));

然后在视图中像这样访问它:

$data[0][0];

像这样尝试

控制器中

$data['results'] = $data_array;
return  $this->load->view('import/view',$data);

鉴于

   if(!empty($results)){
      foreach($results as $key=>$data){
   print_r($data);//prints your all data ($data[0] and $data[1])
   }
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM