Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: CI i problem z tablicami
Forum PHP.pl > Forum > PHP > Frameworki
aladin07
witam

wybacznie za byc moze wielkorotnie wyjasniany problem ale poki co nie znalazlem wyjasnienia
otoz :

mam kontroler :

<?
$tablica['pudelko1'] = 'zapalki';
$tablica['pudelko2'] = 'fajki';
$tablica['pudelko3'] = 'gumki';

$this->load->view('jakis_widok', $tablica);
?>

przekazuje $tablice do widoku.
w zwiazku z tym ze przekazujac $tablice mam dostep do
danych ( przynajmniej tak mi sie wydaje )
poprzez liste zmiennych czyli w tym przypadku $pudelko1, $pudelko2 i $pudelko3

wiec widok .html :

...
foreach ( $pudelko1 as $klucz)
{
echo $klucz;
}
// itd.
...


no ale bywaja przypadki kiedy moj kontroler bedzie wygladal tak :

...
//petle i operacje dajace rozna wartosc dla $zmienna

for ( warunek )
{
$zmienna = ......;
$tablica[$zmienna] = '......';
}

$this->load->view('jakis_widok', $tablica);
...

jak w takim przypadku kiedy $zmienna przymuje rozne wartosci
mozna sie odwolac w widoku do wlasnie zmiennej?

bo

...
foreach ( $zmienna as $ klucz )
{
echo $klucz;
}
...
nie ma szans dzialac smile.gif
czy jest na to jakis sposob zeby nie uzywac w widoku nazw indeksow pol tablicy?
wielokropek
  1. <?
  2. $tablica['pudelka'] = array('pudelko1', 'pudelko2','pudelko3');
  3.  
  4. $this->load->view('jakis_widok', $tablica);
  5. ?>

  1. <?
  2. foreach ( $pudelka as $klucz)
  3. {
  4. echo $klucz;
  5. }
  6. ?>
aladin07
witam i dziekuje za odpowiedz z tym ze w ten sposob to to rozumiem i dziala smile.gif

moze sie nie do konca jasno wyrazilem

w kazdym razie mam kontroler: kontroler
oraz mam widok : widok


i chodzi mi o to jak majac w kontrolerze jako klucz zmienna ( w tym wypadku w kontrolerze jest to $item )
odwolac sie pozniej do niej w widoku bo nie da sie tego zrobic ani przez nazwe tablicy :

Kod
<?
foreach ($tablica as $data)
{
             echo $data;
}
?>


ani tez przez nazwe tej zmiennej tj. :

Kod
<?
foreach ($item as $data)
{
             echo $data;
}
?>


wobec tego jak nalezaloby to zrobic?
no mam nadzieje ze teraz jasniej sie wyrazilem o co mi chodzi smile.gif
Łukasz O.
  1. <?php
  2. class Test3 extends Controller{
  3.  function index(){
  4. $this->load->model('Product');
  5. $query = $this->Product->get_products();
  6. foreach($query->result() as $item){
  7.  $dane['tablica'][$item] = # tutaj zmiana drobna
  8. array($item->product_name,
  9. $item->product_buy_date,
  10. $item->product_buy_prize);
  11. }
  12. $this->load->view('test3', $dane);
  13.  }
  14. }
  15. ?>


widok
  1. <?php
  2. foreach($tablica as $item){
  3.  print_r($item);
  4. }
  5. ?>
aladin07
cos nie bardzo chyba sad.gif

dostaje takie bledy - cyklicznie tyle ile pozycji w bazie danych skad pobierane sa rekordy ) :



A PHP Error was encountered

Severity: Warning

Message: Illegal offset type

Filename: controllers/test3.php

Line Number: 8


A PHP Error was encountered

Severity: Notice

Message: Undefined variable: id

Filename: views/test3.php

Line Number: 9
qoob
ej a nie powinno byc:
  1. <?php
  2. //...
  3.  
  4. foreach($query->result() as $item) {
  5.  
  6. $tablica['item'] = array ( $item->product_name,
  7. $item->product_buy_date,
  8. $item->product_buy_prize );
  9. }
  10. //...
  11. ?>

klucz w $tablica nie moze byc zmienny bo potem czemu view ma go czytac jako 'item'?
z palca wiec wszystko sie moze zdarzyc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.