Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CI] Łączenie widoków
Forum PHP.pl > Forum > PHP > Frameworki
pawkow
kontroler home.php

  1. <?php
  2. class Home extends Controller
  3. {
  4. function index()
  5. {
  6. $content = array('news' => $this->load->view('news'));
  7. $this->load->view('main', $content);
  8. }
  9. }
  10.  
  11. ?>


widok news.php
  1. <div class="post">
  2. <a href="#">
  3. <h1>tytuł</h1></a>
  4. <p>Treść</p>
  5. <p class="post-footer align-right">
  6. <a href="index.html" class="readmore">Czytaj całość</a>
  7. <a href="index.html" class="comments">Komentarze (7)</a>
  8. <span class="date">21 XI 2007 10:25</span>
  9. </p>
  10. </div>


widok main.php
  1. (...)
  2.  
  3. <div id="main">
  4.  
  5. <?=$news;?>
  6.  
  7. </div>
  8.  
  9. (...)


przyznam, że dopiero zaczynam z CI, ale zaczyna mnie irytować.

Moje pytanie brzmi - dlaczego nie wyświetla mi się widok news.php w widoku main.php we wskazanym miejscu ? Nie ma żadnego błedu.
loonger
zmień
  1. <?php
  2. $content = array('news' => $this->load->view('news'));
  3. ?>

na
  1. <?php
  2. $content = array('news' => true);
  3. ?>

oraz
  1. <?=$news;?>

na
  1. <?php if(!empty($news)) $this->load->view('news'); ?>


nie wiem czy tak jest poprawnie (zgodnie z założeniami CI) ale działać będzie. smile.gif
pawkow
ok, działa, ale co, jeżeli newsów chcę mieć kilka smile.gif ?
Riklaunim
wyświetlasz je w pętli
pawkow
możesz dać jakiś przykład, bo nie bardzo wiem, ja bym bardziej wolał swoim sposobem, tzn nie mieszać za dużo kodu do widoków.
loonger
tworzysz sobie tablicę z danymi newsow np:
  1. <?php
  2. $newsy[0]['tytul'] = 't1';
  3. $newsy[0]['tresc'] = 'te1';
  4. $newsy[1]['tytul'] = 't2';
  5. $newsy[1]['tresc'] = 'te2';
  6. ?>


wywolujesz widok w następujący sposób:
  1. <?php
  2. $dane["newsy"] = $newsy;
  3. $this->load->view("news",$dane);
  4. ?>


a widok news powinien wygladac nastepujaco:
  1. <?php foreach($newsy as $news): ?>
  2. Tytul: <?=$news["tytul"]; ?> <br />
  3. Tresc: <?=$news["tresc"]; ?><br />
  4. <?php endforech; ?>


generalnie to polecam user guide'a do CI, tam jest to wytlumaczone w bardzo przystepny sopsob.
pozdrawiam
http://codeigniter.com/user_guide/general/views.html -> Creating Loops
pawkow
ok, ale wtedy dostaje tylko widok news.php a ja chce ten widok osadzić w main.php z czym mam problem sad.gif
loonger
pare postów wcześniej wytlumaczylem Ci jak to zrobic. przeczytaj jeszcze raz i spróbuj polaczyc te dwa rozwiazania.
nrm
czytać! myśleć!

Przeciez zostało to już napisane:

widok main:
Kod
$this->load->view('naglowek');

//twoje przetwarzanie newsow

$this->load->view('stopka');
pawkow
dzięki wszystkim, poradziłem sobie winksmiley.jpg
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.