Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Smarty] - Generowanie formularza, Obsługa i generowanie
Rafiki
post 9.01.2006, 20:32:52
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 29.12.2005
Skąd: Z krzaków

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


Postanowilem skorzystac ze smarty ale mam pewien problem , otoz mam skrypt index.php wyglad w index.tpl

w skrypcie mam cos takiego:

  1. <?
  2. if ( empty($_POST['submit']) )
  3. {
  4. // wyglad formularza
  5. }
  6. else
  7. {
  8. // walidacja formularza
  9. }
  10. ?>


Jak w index.tpl zamiescic wyglad formularza i wyswietlane bledy ( ktore sa wyswietlane poprostu po przez echo ) , aby odpowiednio gdy formularz nie zostanie wyslany zostal on wyswietlony a jak zostanie wyslany ewentualny blad lub tez text o poprawnym wypelnieniu formularza ?

Probowalem jakos
{if}
ale albo nie dziala jak powinno albo wywala error parsera lub inny :|
Go to the top of the page
+Quote Post
crash
post 9.01.2006, 22:19:32
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Zrób jeden templates od formularza a w środku:
  1. {if $smarty.post.submit ne ""}
  2. {if $smarty.post.pole1 eq ""}
  3. Nie wypełniłeś pola1!
  4. {/if}
  5. {if $smarty.post.pole2 eq ""}
  6. Nie wypełniłeś pola2!
  7. {/if}
  8. ... etc
  9. {/if}
  10. Dalsza część formularza/strony


--------------------
Go to the top of the page
+Quote Post
Rafiki
post 10.01.2006, 21:29:29
Post #3





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 29.12.2005
Skąd: Z krzaków

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


Dzieki, dziala smile.gif

Mam jeszcze jeden problem , chyba juz ostatni, jak w pliku .tpl zamiescic wyglad tabelki ktora jest w petli i wykonuje sie x ? :| mam np taki kodzik:

Kod
$query = mysql_query( 'SELECT id, login, first_name, last_name FROM admins ORDER BY id ASC LIMIT '.$_GET['page'].', '.$how['admin'].'' );

  while ( $result = mysql_fetch_assoc($query) )
  {
     echo '<tr>'."\n";
     echo '<td bgcolor="'.$color['1'].'" align="center">'."\n";
     echo $result['first_name'].' '.$result['last_name'].' / '.$result['login']."\n";
     echo '</td>'."\n";
     echo '<td bgcolor="'.$color['1'].'" align="center"> <b>'."\n";
     echo '<a href="'.$PHP_SELF.'?operation=edit&id='.$result['id'].'">E</a>'."\n";
     echo '&nbsp;'."\n";
     echo '<a href="'.$PHP_SELF.'?operation=delete&id='.$result['id'].'">D</a> </b>'."\n";
     echo '</td>'."\n";
     echo '</tr>'."\n";
  }


a chce wyglad tej petli ( czyli komorek ) zamiescic w pliku .tpl ale nie wiem jak, probowalem uzyc jakos {section} ale wyswietlilo mi 20 razy ( bo taka jest maxymalna liczba pozycji sie wyswietlajacych na stronie ) wciaz to samo mimo ze wpisow bylo tylko 5 i tyle powinno sie wyswietlic i w kazdym inna zawartosc.
Go to the top of the page
+Quote Post
crash
post 10.01.2006, 21:59:21
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


A próbowałeś {foreach}?


--------------------
Go to the top of the page
+Quote Post
mike
post 10.01.2006, 23:29:07
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Wydzieiłem z tego tamatu [smarty] - wiadomosci wstępne cztery ostatnie posty, ponieważ zaczynały odbiegać od tematu.

Kontynuujcie tutaj.
Go to the top of the page
+Quote Post
Rafiki
post 13.01.2006, 20:43:28
Post #6





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 29.12.2005
Skąd: Z krzaków

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


ok poradzilem sobie jakos nawet ze {section} smile.gif

tylko znowu mam inny problem, mam taki plik tpl:

  1. <?php
  2. {include file="header.tpl"}
  3. {include file="menu_left.tpl"}
  4.  
  5. <table width="100%" border="0" cellpadding="0" cellspacing="0">
  6. <tr>
  7. <td class="text">
  8. <b>Panel administracyjny - Administratorzy</b> <br /> <br />
  9. <div align="justify">
  10.  
  11. {if $smarty.get.operation eq "" && $smarty.get.id eq ""}
  12.  
  13. {if $smarty.post.submit eq ""}
  14.  
  15. {if $error.no_admin eq ""}
  16.  
  17. {include file="admin/admins_form_add.tpl"}
  18.  
  19. {else}
  20.  
  21. {$error.no_admin}
  22.  
  23. {/if}
  24.  
  25. {else}
  26.  
  27. {include file="admin/admins_form_add.tpl"}
  28.  
  29. {/if}
  30.  
  31. {else if $smarty.get.operation eq "edit" and is_numeric($snarty.get.id)}
  32.  
  33. Edycja danych
  34.  
  35. {else if $smarty.get.operation eq "delete" }
  36.  
  37. Usuwanie danych
  38.  
  39. {/if}
  40.  
  41. </td>
  42. </tr>
  43. </table>
  44. <br />
  45.  
  46. {include file="menu_right.tpl"}
  47. {include file="footer.tpl"}
  48. ?>

niestety wywala mi error, nie wiem co jest zle :/

tresc errora:

Fatal error: Smarty error: [in admin/admins.tpl line 29]: syntax error: unexpected {else} (Smarty_Compiler.class.php, line 468) in I:\HTTP\httpd\logowanie_new\smarty\Smarty.class.php on line 1095

gdywywale ostatni warunek {else if...} dziala dobrze ( tylko nie wpelni poprzez usuniecie ostatniego warunku. nie mam pojecia co jest zle.

Jezeli dam {elseif...} ( bez przerwy ) nie wywala bledu ale warunek nie dziala prawidlowo gdyz gdy wejde na strone o adresie ?operation=edit?id=1 nie wyswietla sie nic :|

aha dodam jeszcze ze zmienna $error[no_admin] jest zdefiniowana wtedy gdy w ilosc wynikow do wyswietlenia jest rowna 0

Ten post edytował Rafiki 13.01.2006, 20:46:51
Go to the top of the page
+Quote Post
crash
post 13.01.2006, 21:07:18
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Wszystko wygląda dobrze poza tym, że nie ma czegoś takiego jak {else if}, używaj tego {elseif}... Błąd może tkwić gdzieś indziej.


--------------------
Go to the top of the page
+Quote Post
vebler
post 19.01.2006, 01:30:55
Post #8





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.01.2003
Skąd: Kielce

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


w 31 linijce popraw ze snarty na smarty tongue.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 Wersja Lo-Fi Aktualny czas: 20.04.2024 - 02:58