Передача ассоциативного массива для просмотра и доступа к значениям в нем с помощью foreach

0

Это мой код в контроллере...

function print_dm($delivery_memo_id){
    $data1=array();

    $query=$this->db->query("select de.*, pr.* from phppos_delivery_memo de inner join 
    phppos_productdetails pr  on de.delivery_memo_id=pr.delivery_memo_id WHERE 
     de.delivery_memo_id=$delivery_memo_id");

    if($query->num_rows() > 0)
  {
  foreach ($query->result() as $row)
  {

    $data1[]=$row->product_id;
    $data1[]=$row->product_name;
    $data1[]=$row->quantity;
    $data1[]=$row->unit;
    $data1[]=$row->unit_rate;


  }
}
else
{
$data1 = array();
 }

 $this->load->view('delivery_memo/print_layout',$data1);

}

Когда я печатаю_r $ data1, я получаю это..

 Array ( [0] => 1 [1] => Zinc Sulphate [2] => 1 [3] => 1 [4] => 100 [5] => 4 [6] => Copper 
 Sulphate [7] => 1 [8] => 12 [9] => 100 [10] => 9 [11] => Sulphur 80% WDG [12] => 1 [13] => 1 
 [14] => 100 )

Я передаю его, как показано выше. Но как мне получить доступ к нему или мне нужно изменить код в контроллере?

Я получаю несколько записей в этом массиве

  • 0
    foreach($data1 as $data) echo $data; Это делает трюк для вас?
  • 0
    неопределенный переменный $ data1
Показать ещё 3 комментария
Теги:
codeigniter

2 ответа

2
Лучший ответ

Просто передайте результат запроса для просмотра:

function print_dm($delivery_memo_id){
    $data1=array();

    $query=$this->db->query("select de.*, pr.* from phppos_delivery_memo de inner join 
    phppos_productdetails pr  on de.delivery_memo_id=pr.delivery_memo_id WHERE 
     de.delivery_memo_id=$delivery_memo_id");

    $this->load->view('delivery_memo/print_layout', array('data1' => $query->result()));
}

Затем вы должны иметь доступ к своей переменной $data1, например:

<?php foreach ($data1 as $row) { echo $row->product_id . "\n"; } ?>
  • 0
    Можете ли вы объяснить мне немного ??
  • 0
    @KedarB Когда вы передаете массив данных методу view() , каждый ключ в нем становится переменной в представлении. Поскольку result() запроса result() уже является чем-то, с чем вы можете работать в представлении, вы просто передаете его методу view() с ключом 'data1' и вы получаете переменную $data1 .
1

Очевидно, вы не понимаете, как обращаться к данным, переданным в представление. Вы передаете массив вашему представлению, в представлении не будет переменной $data1 в вашем переданном массиве будут vars, которые называются ключами. Поэтому вы должны передать вам такие данные:

$this->load->view('delivery_memo/print_layout',array('data1' => $data1));

После этого $data1 будет доступен в представлении:

var_dump($data1);

Подробнее см. Здесь: https://ellislab.com/codeigniter/user-guide/general/views.html

  • 0
    Как я могу получить доступ к $ data1?
  • 0
    var_dump($data1); в файле просмотра.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню