ilkar
17.02.2009, 12:53:04
W jaki sposób można używać jquery albo wogole ajax'u w templatach SMARTY?
Chodzi mi o to, ze mam template index.tpl, w ktorej mam np:
<div class="test">
{$tekst}
</div>
co mam napisać, aby ajax wrzucil mi w {$tekst} jakies informacje
$response->assign("tekst", "abcd");
$response->display("index.tpl");
bo to co napisalem powyzej jako przyklad nie dziala...
wyskakuje mi blad typu Fatal error</b>: Call to a member function assign() on a non-object in .... on line <b>..</b>
nospor
17.02.2009, 12:54:57
Cytat
aby ajax wrzucil mi w {$tekst} jakies informacje
Ajax w $text?
jQuery to lib js i nie ma nic wspolnego z twoim kodem w php. js nie wrzuci ci nic do zmiennej php. Jak chcesz cos wrzucic do diva to musisz zrobci to np. tak
Kod
jQuery('.test').html('cos do diva');
heracles
17.02.2009, 13:01:53
wyskakuje mi blad typu Fatal error</b>: Call to a member function assign() on a non-object in .... on line <b>..</b>
[/quote]
mozna przerzucac do html`a elementy jquery, np jak masz w headerze wpisana funkcje jquery itp.
Problem Twoj jest to, ze nie masz zabarzdo dobrze dzialajacej klasy $response-> Problem twoj jest tutaj.
sprawdz obsluge smarka
ilkar
17.02.2009, 13:22:19
moj js dziala dobrze, w naglowku mam dodane funkcje, ktora poprawnie wpisują mi wszystko do wyznaczonego diva, problem jest w tym, ze nie wiem co dac w responsie z php'a do ktorego przesylane są dane z formularza, aby ten wrzucił mi informacje do szablonu.
mam plik index.php odnoszący sie do szablonu index.tpl. Oba pliki tworzą formularz.
Po zaakceptowaniu formularza informacje z inputow są przesylane za pomocą jquery do pliku php, ktory sprawdza poprawnosc wpisanych informacji i daje odpowiedz. Jeżeli formularz jest blednie wypelniony, to chce wyswietlic jakies informacje korzystając juz z szablonu ktory istnieje, czyli index.tpl.
pytanie jest co mam wpisac w php sprawdzajacym dane, aby za pomoca ajaxa mi cos wyswietlil w templacie.
sannin
17.02.2009, 13:24:00
O ile dobrze rozumiem to możesz w request podać zmienne np. za pomocą GET
heracles
17.02.2009, 14:40:26
a wiec korzystasz z jQuery validatora. Sprawa nie jest trudna. Element jQuery odpowiedzialna za ten element jest typu:
rules -> username: {
required: skrypt_sprawdzajacy.php,minlength: 2
},
messages-> username: {
required: "{$zle.required}",
minlength: "{$zle.minlength}"
},
calosc sie znajduje w dokumencie html`a wiec do templata naglowka poslij co chcesz
$clasaSmarta->assign(zle, array(
'requred' => 'istnieje juz taki user',
'minlenth' => 'za malo znakow'));
ilkar
17.02.2009, 20:08:40
Mam taki kod:
$correct_first_name = new correct();
$correct = $correct_first_name->correct_string($first_name);
$register2->assign("first_name", $correct);
$register2->display('register.tpl');
klasa correct zawiera funkcje sprawdzające rozne rzeczy
funkcja correct_string sluzy do sprawdzania, czy login jest ok
odpowiedz chcialbym wstrzyknac do miejsca oznaczonego w szablonie smartow jako $first_name
i wszystko byloby ok, gdyby nie fakt, iż robiąc to w taki sposob jak powyżej szablon wpisuje się w szablon, czyli mam szablon utworzony za pierwszym razem, a w nim po akcji ajaxa zostaje wpisany ponownie ten sam szablon, masz moze pomysł jak to obejść?
a może macie jakies tutoriale dotyczące korzystania z ajax'a w smartach?
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.