Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz w smarty
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
kocic
witam smile.gif

w jaki sposób przy wykorzystaniu smarty można dokonać weryfikacji wprowadzanych danych do formularza. Dla przykłądu, plik rejesracja.tpl:

Kod
{config_load file="polish.conf" section="rejestracja"}
<script language="javascript">
function sprawdzRejestracje(form)
{ldelim}
if( form.login=='')
   {ldelim}
      alert("puste pole}
      return false;
   {rdelim}
return true;
{rdelim}
</script>

<form method="post" name="rejestracja" onsubmit="return sprawdzRejestracje(this)" action="zapis.php">
    <div class="registerPole">{#adres#}</div>
    <div class="registerWpis"><input name="login" type="text"></div>
<input name="zapisz" type="submit" value="Zapisz" />
</form>



prosty forumularz z jednym polem tekstowym nazywającym się "login". Jeżel "login" będzie pusty, wyskoczy okienko z komunikatem "puste pole".
A jak zrobić, żeby informacja o pustym polu pojawiła się jako tekst obok tego pola np. zamiast zmiennej {#adres#} pojawiła się infomracja "wprowadź dane"?
sf
Najlepiej stworzyć sobie plugin - funkcję do tego. U mnie nazywa się ona message. Wywołanie {message data=$failed name="adres"}.
kocic
a jak funkcji przekazać wartości z formularza i jak ją wywołać z poziomu formularza?
joebezucha
Uzywaj {literal}{/literal} mniejj pisania i bardziej przejrzyscie...
Nie rozumiem czy chcesz to zrobić po stronie kolienta czy po stronie serwera....

Jeśli po stronie klienta czyli przez JavaScript to możesz tak:

  1. {config_load file="polish.conf" section="rejestracja"}
  2. {literal}
  3. <script language="javascript">
  4. function sprawdzRejestracje(form)
  5. {
  6. if( form.login=='')
  7. {
  8. alert("puste pole}
  9. document.getElementById('registerPole').innerHTML = "Podałeś pusty login";
  10. return false;
  11. }
  12. return true;
  13. {/literal}
  14.  
  15. <form method="post" name="rejestracja" onsubmit="return sprawdzRejestracje(this)" action="zapis.php">
  16. <div id="registerPole">&nbsp;</div>
  17. <div class="registerWpis"><input name="login" type="text"></div>
  18. <input name="zapisz" type="submit" value="Zapisz" />
  19. </form>


a jeżeli skrypt php ma sprawdzić pole login to musisz ten skrypt napisac;) no i przypisać wiadomość ze skryptu do zmiennej szablonu
kocic
Dzięki wielkie smile.gif

mniej więcej o to chodziło. Komunikaty chcę umieścić w plikug polish.conf, ale to w takim przypadku przedtwarzanie forumlarza muszę zrobić po stronie serwera, a nie klienta.
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.