Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]smarty,array, problem z wyświetlaniem lub konstrukcją tablicy...
LoBo0sw
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 12.04.2010

Ostrzeżenie: (0%)
-----


Witam,
Ostatnio zacząłem się bawić ze smarty i w zasadzie tablicami, bo wcześniej ich nie używałem i narodził mi się problem, którego przy pomocy google i licznych przykładów, nie udało mi się rozwiązać.
Próbuję zastosować kilka przykładów (gdyby przypadkiem któryś zadziałał).
Kod na obecną chwilę to mini poligon, bo próbuję zrobić by cokolwiek zadziałało, przez to zastosowane są 2 przykłady tablic i różne przykłady by wyswietlić.

Wycinek klasy.

  1. protected $monit = array();
  2. public function coment_insert() {
  3. $monit[] = $monit;
  4. $error = "";
  5. if (isset($_POST['tytul']) || isset($_POST['tresc']) || isset($_POST['submit'])) {
  6. $tytul = stripslashes(strip_tags(trim($_POST["tytul"])));
  7. $tresc = stripslashes(strip_tags(trim($_POST["tresc"])));
  8. if (($this->min_max(3, 25, $_POST['tytul'])) == true) {
  9. $error++;
  10. $this->monit[1] = $this->message('Tytuł min 3 max 25 znakow.', 2);
  11. $monit = $this->monit[1];
  12. }
  13. if (($this->min_max(5, 250, $_POST['tresc'])) == true) {
  14. $error++;
  15. $monit = $this->message('Treść min 5 max 250 znaków!', 2);
  16. //$monit = $this->monit[2];
  17. }
  18. if ($error == 0) {
  19. if (!isset($_GET['update_coment'])) {
  20. $result = $this->query("insert into `coment` (
  21. `news_id`,
  22. `tytul`,
  23. `tresc`,
  24. `data_dodania`)
  25. VALUES(
  26. '{$_GET['news_id']}',
  27. '{$_POST['tytul']}',
  28. '{$_POST['tresc']}',
  29. NOW())");
  30.  
  31. $monit[3] = $this->message('News dodany !', 1);
  32. } else {
  33. $result = $this->query("UPDATE coment set
  34. tytul='$tytul',
  35. tresc='$tresc'
  36. WHERE
  37. coment_id={$_GET['update_coment']
  38. }");
  39.  
  40. $monit[4] = $this->message('Zaktualizowano.', 1);
  41. $monit = $this->monit[4];
  42. }
  43. }
  44. }
  45. return $monit;
  46. }


smarty

  1. {$monit} bez section. w news comment<br />
  2. {section name=messages loop=$monit}{$messages}{$monit[messages]}{/section} z petla section


I jak na razie udało mi się uzyskać różnymi metodami prób i błędów, ze albo 1 z komunikatów jest wyświetlany albo napis array.
Np zostawię pusty treść wyświetla komunikat błędu treści, zostawię tytuł wpiszę treść to wyświetla komunikat błędu tytułu, zostawię 2 wolne wypisuje komunikat błędu treści bez tytułu.. czasami jak pozmieniałem pokręciłem to pokazuje napis Array.. Tablic dopiero się uczę więc proszę o nakierowanie co robię źle..

Co zrobić by w przypadku wolnych pól tytuł i treść smarty wyświetlało mi obydwa komunikaty błędu ?
Go to the top of the page
+Quote Post
czychacz
post
Post #2





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


//edit:
http://www.smarty.net/docsv2/en/language.f...ion.section.tpl

Ten post edytował czychacz 3.09.2012, 12:21:23
Go to the top of the page
+Quote Post
LoBo0sw
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 12.04.2010

Ostrzeżenie: (0%)
-----


Nie potrzebują nabijania postów tylko pomoc, jabyś zauważył używam section, a link,który mi podałeś przez ostatnie kilka dni był u mnie wyświetlany przez kilka dni bardzo często.

Jeżeli jesteś w temacie to pomóż mi rozwiązac problem opierając się na przykładzie mojego kodu.
Go to the top of the page
+Quote Post
czychacz
post
Post #4





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


to nie nabijanie postów, tylko zachęcenie do czytania dokumentacji tongue.gif
z której wersji smarty korzystasz?
w dość nowym smarty jest funkcja foreach
  1. {foreach from=$tablica item=elementTablicy key=index}
  2. To element tablicy znajdujący się pod indeksem {$index}<br/>
  3. A to zawartość właściwości jakasWlasciwosc: {$elementTablicy.jakasWlasciwosc}
  4. {/foreach}

samo section jest dosyć stare, chociaż czasami się przydaje. to raczej pozostałość po pierwszych wersjach smarty.
Go to the top of the page
+Quote Post
LoBo0sw
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 12.04.2010

Ostrzeżenie: (0%)
-----


Zaraz będę kombinowac z foreach, choc bardziej zależy mi na ustaleniu jakim sposobem zrobi tablicę z $monit by funkcja ją prawidłowo zwracała, w kodzie mam 2 metody zastosowane do testu, a przydałaby się wskazówka, której metody używac i która zwróci mi prawidłową tablicę.
PS używam najnowszego smarty.

Ten post edytował LoBo0sw 3.09.2012, 13:45:24
Go to the top of the page
+Quote Post
czychacz
post
Post #6





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


szczerze mówiąc, najlepiej byłoby, gdybyś opisał krok po kroku, co chcesz osiągnąć, wywołując coment_insert, bo same body jest raczej dziwnie napisane
Go to the top of the page
+Quote Post
LoBo0sw
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 12.04.2010

Ostrzeżenie: (0%)
-----


W zasadzie w późniejszej formie będzie wykorzystywane do dodawanie komentarzy, jakiś treści itd.
Jak na razie to wszystko działa(dodają mi się treści, wyświetlam je) tylko chodzi mi o to, żeby prz dodaniu np komentarza wyświetlał mi smarty monit o błędzie. Tak jak w kodzie jest to przedstawione: za krótka treśc lub tytul wyswietla komunikat błędu... wyświetlanie pojedynczych komunikatów mi działa ale chciałbym aby przy pustym polu treśc i tytul wyświetliło mi obydwa komunikaty,a tego właśnie nie robi. Przez to pomyślałem, żeby ta funkcja w przypadku nie spełnionego warunku dodawała monit do tablicy, zwracała ją, a smarty wyświetlało wszystko dodane do tej tablicy. I z tym właśnie sobie nie umiem poradzic.

Przepraszam za chaotycznie napisanego posta, ale właśnie kończę pracę i muszę generowa raporty wink.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:58