Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> XAJAX + SMARTY
mc0314
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.05.2006
Skąd: Szczecin

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


WITAM

O AJAXIE przeczytałem dość niedawno, duzo pracuje w Smarty i chciałbym połączyć nowo poznaną technologie

wyczytalem . coś takiego:
Cytat
"Xajax to jedna z "bibliotek" łączących php z AJAXem. Biblioteki takie można podzielić na dwie grupy - zorientowane pod JavaScript i zorientowane pod php. XAJAX należy do tej drugiej grupy, dzięki czemu ilość kodu Javascript w naszych skryptach będzie minimalna."


za nic w świecie nie moge zrobić nawet najprostrzego przykładu xajax + smarty:(

google przeszukane cale sad.gif

Czy uzyskam tu jakąkolwiek pomoc??

a może coś innego nix XAJAX do SMARTY (ale zorientowane pod php)

POZDRAWIAM SERDECZNIE
Go to the top of the page
+Quote Post
squid
post
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


jest HTML_AJAX z PEAR
Problem przy wykorzystaniu smarty polega na tym ze to smartyu powinno zajac sie wyswietlaniem (rowniez) JS stworzonego w innych bibliotekach wiec najpiej jest znalezc taka ktora pozwala wygenerowac JS i zapisac do zmiennej taki kod dzieki czemu w smarty bedziesz mogl zrobic tak:
  1. <script>{$to-jest _skrypt}</script>

Smarty tez nadaje sie swietnie do tworzenia odpowiedzi dla wywolan javasriptu, poprostu zamist HTML tworzysz XML
  1. <?xml ...?>
  2. <response>
  3.    {$twoje_odpowiedz_serwera}
  4. </respone>


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
SebastianSerafin
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.11.2005

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


Witam
Też próbowałem połączyć te dwie klasy(Smarty i xajax) i przed chwilą przeczytałem post i wpadł mi pomysł a, że kod warty jest tysiąca słów oto i on:
  1. <?php
  2. $xajax->printJavascript('../'); 
  3. $skrypt = ob_get_contents();
  4.  
  5. $smarty->assign( 'skrypt',$skrypt);
  6. ?>


a szablon smartiego:
  1. <title>xajax example</title>
  2. {$skrypt}
  3. </head>


Skorzystałem z funkcji ob" title="Zobacz w manualu php" target="_manual by uzyskać potrzebny do wklejenie kod. Nie ma chyba co wiecej tłumaczyć, Poprosze o skomentowanie mojej metody.
Pozdrawiam
Go to the top of the page
+Quote Post
cyphelf
post
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 1
Dołączył: 27.03.2006

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


Prościej będzie tak:

  1. <?php
  2. $smarty->assign( 'skrypt', $xajax->getJavascript('../'));
  3. ?>


--------------------
lorem ipsum : polska społeczność zend framework
Go to the top of the page
+Quote Post
jarrod
post
Post #5





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

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


A jaką otrzymaujesz odpowiedź z serwera?

Pamiętaj że ważna jest kolejność wywoływania metod XAJAX.

Najpier rejestrujesz funkcje:

  1. <?php
  2. $ajax->registerFunction('nazwa_funkcji');
  3. ?>

Jeżeli funkcja nie jest widzialna (tzn tyle samo co gdy funkcja function_exists('nazwa_funkcji') zwróci false) to nie zostanie ona zatejestrowana przez xajax-a.

Gdy zarejestrujesz swoje funkcje czas na metodę:
  1. <?php
  2. $ajax->processRequests();
  3. ?>


Bez niej nic ci się nie uda. Musi być wywołana po zarejestrowaniu funkcji ale przed wysłaniem nagłówków do przeglądarki.

Na końcu należy wydrukować kod js:
  1. <?php
  2. $ajax->printJavascript('sciezka_do_xajaxa/ajax/');
  3. ?>


i umieść go w sekcji HEAD lub BODY strony (w zależności od wybranej deklaracji dokumentu).

Jeżeli ta kolejność będzie inna to nie licz na pozytywny efekt.

a teraz prosty przykład:

  1. <?php
  2. function testAjax($id)
  3. {
  4. $obj = new xajaxResponse();
  5.  
  6. $obj->addAlert('to jest n test xajaxa');
  7. $html = 'testuję ajaxa ;)';
  8. $obj->addAssign($id,'innerHTML',$html);
  9. $obj->addAssign($id,'style.border','1px #c00 solid');
  10. return $obj;
  11. }
  12.  
  13. $ajax = new xajax();
  14. $ajax->registerFunction('testAjax');
  15. $ajax->processRequests();
  16.  
  17. $this->ajax->printJavascript('lib/ajax/');
  18. $initAjax = ob_get_contents();
  19.  
  20.  
  21. $smarty = new Smarty();
  22. $smarty->assign(array(
  23. 'TEXT1' => 'testujemy x-ajaxa',
  24. 'initAjax' => $initAjax
  25. ));
  26.  
  27. $ret= $smarty->fetch('templ.tpl','templ','templ',false);
  28.  
  29. //wynik działania jest w zmiennej $ret. Możesz ją wykorzystać kiedy chcesz. 
  30. echo $ret;
  31. ?>


A teraz template:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Test ajaxa</title>
  5. <meta http-equiv="content-TYPE" content="text/html; charset=iso-8859-2"/>
  6. </head>
  7. <body xml:lang="pl">
  8. {$initAjax}
  9.  
  10. <div id="main">{$TEXT1}:
  11. <div id="content" style="display:none;"></div>
  12. </div>
  13. <span onclick="xajax_testAjax('content');">Testuj<span>
  14. </body></html>



Generalnie poczytaj dokumentację na stronie
http://wiki.xajaxproject.org/Documentation...esponse.inc.php

Pozdrawiam
Go to the top of the page
+Quote Post
mc0314
post
Post #6





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.05.2006
Skąd: Szczecin

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


Śliczne dzięki za pomoc
SERDECZNIE WSZYSTKICH POOSTRAFFIAM winksmiley.jpg
Go to the top of the page
+Quote Post
szumigt
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 5.10.2007

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


Cytat(jarrod @ 14.10.2006, 20:25:21 ) *
ob_start();
$this->ajax->printJavascript('lib/ajax/');
$initAjax = ob_get_contents();
ob_end_clean();


A jesli nie włącze tego kawałka kodu, to nie będzie trybić?? Ja dziś wykombinowałem taki sam kod ale bez tego fragmentu i właśnie cosik nie do końca mi to działa ... Różnica była tylko taka że nie podałem parametru dla printJavascript ale wcześniej skonfigurowałem ścieżke do AXJAX-a to chyba to samo. Ale o co chodzi z tym ob_get_contents ...
Acha jeszcze jedno dlaczego tam jest $this->ajax?? Nie powinno być poprostu $ajax questionmark.gif

Ten post edytował szumigt 19.02.2008, 22:28:31
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: 20.08.2025 - 09:29