Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Problem]xajax+lightbox
pinkejs
post 29.04.2007, 18:42:14
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 29.04.2007

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


Witam serdecznie, mam problem z wyświetleniem zdjęcia za pomocą lightbox, mianowicie przekazuje przez XAJAX link:

  1. <?php
  2. function testAjaxa($id)
  3. {
  4. $obj = new xajaxResponse();
  5. $html = '<a href="images/zdjecie.jpg" rel="lightbox" title="my caption">image</a>';
  6. $obj->addAssign($id,'innerHTML',$html);
  7.  
  8. return $obj;
  9. }
  10. ?>


W sekcji HEAD mam umieszczone:

  1. <script type="text/javascript" src="/js/prototype.js"></script>
  2. <script type="text/javascript" src="/js/scriptaculous.js?load=effects"></script>
  3. <script type="text/javascript" src="/js/lightbox.js"></script>
  4. <link rel="stylesheet" href="/css/lightbox.css" type="text/css" media="screen">


Link do zdjęcia przekazuje się poprawnie, lecz po kliknięciu zamiast wyświetlać sie poprzez lightbox, po prostu uruchamia sie w przeglądarce. Chciałbym także nadmienić że przekazuje to przez Smarty, ale to chyba nie ma w tym przypadku znaczenia.

Będę wdzięczny za wszelaką pomoc przy usunięciu problemu.
Go to the top of the page
+Quote Post
chomiczek
post 2.05.2007, 13:36:28
Post #2





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


witaj, ja własnei miałem zaczynać identyczny wątek.. mam ten sam problem.. wydaje mi się, że poprostu nie będzie można tego wyświetlić w ten sposób.. ale obym sie mylił.


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
prond
post 2.05.2007, 13:48:47
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Lightbox parsuje stronę przy evencie window.onload

Fragment kodu lightbox'a
  1. function initLightbox() { myLightbox = new Lightbox(); }
  2. Event.observe(window, 'load', initLightbox, false);


Jak dociągasz obrazki ajax'em to nie mają one podpiętych akcji lighbox'a.

Być może wywołanie 'Lightbox.initialize()' pomoże.


--------------------
--------------------------------------------------------------------------------
weblog.axent.pl
--------------------------------------------------------------------------------
Go to the top of the page
+Quote Post
yaotzin
post 3.05.2007, 00:51:38
Post #4





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


:/ Tak to jest właśnie z technologiami openSourcowymi nie wszystkie mają do końca dobrą dokumentację :/ i to wkurza. Aby sobie poradzić z problemem który macie wystarczy dodać do twojej funkcji wywołanie

$obj->addScriptCall

  1. <?php
  2. function testAjaxa($id)
  3. {
  4. $obj = new xajaxResponse();
  5. $html = '<a href="images/zdjecie.jpg" rel="lightbox" title="my caption">image</a>';
  6. $obj->addAssign($id,'innerHTML',$html);
  7.  
  8.  
  9. $obj->addScriptCall("mojaFunkcja", "argument1", "argument2");
  10.  
  11.  
  12. return $obj;
  13. }
  14. ?>


A oprócz tego warto zapoznać się z tymi metodami:

xajaxResponse
addAlert
addAppend
addAssign
addClear
addConfirmCommands
addCreate
addCreateInput
addEvent
addHandler
addIncludeScript
addInsert
addInsertAfter
addInsertInput
addInsertInputAfter
addPrepend
addRedirect
addRemove
addRemoveHandler
addReplace
addScript
addScriptCall
getXML
loadXML
outputEntitiesOff
outputEntitiesOn
setCharEncoding
xajaxResponse

zakładam że interesują was najbardziej te:

addIncludeScript - dodaje skrypt w JS który ma sie wykonać zasada dodawania jest taka
$obj->addIncludeScript("mojefunkcje.js");
addScript - pozwala na wpisanie własnego skryptu do otrzymywanego pytania (nie wiem jak to nazwać :/ jest już prawie 2 i szare komórki idą spać)

$obj->addScript("var x = prompt('Podaj jakiś tekst');");

addScriptCall - wywołuje funkjcę zawartą w zwracanej odpowiedzi.

$obj->addScriptCall("mojaFunkcja", "argument1", "argument2");

Jak będę miał kiedyś czas to opiszę wszystkie metody zawarte w klasie xajax i funkcje. może się komuś przyda.

Ten post edytował yaotzin 3.05.2007, 00:53:22


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
chomiczek
post 3.05.2007, 19:50:36
Post #5





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


Cytat(yaotzin @ 2.05.2007, 23:51:38 ) *
Jak będę miał kiedyś czas to opiszę wszystkie metody zawarte w klasie xajax i funkcje. może się komuś przyda.


a jeśli używam advajaxa? da sie to zrobić?

EDT: Właściwie to bez żadnego problemu rozwiązałem tą kwestie u siebie, przeczytałem wcześniejsze posty (nie za wiele mi mówiły), ale zrobiłem coś takiego:

  1. function opis(nr) {
  2. $i("opis").innerHTML = '<img src="img/loading.gif" alt="" style="margin-left:200px; margin-top:20px;" />';
  3. advAJAX.get({
  4. url: "actions/opis.php?pID="+nr,
  5. onSuccess : function(obj) {
  6. $i("opis").innerHTML = obj.responseText;
  7. initLightbox();
  8. }
  9. });
  10. }


dopisałem linie, która jest pogrubiona i w tym momęcie wszystko fajnie działa biggrin.gif

Ten post edytował chomiczek 3.05.2007, 20:11:07


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
slafur
post 5.06.2007, 00:08:37
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 4.10.2005

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


A nie można zastosować image() ?
Przecież też fajnie by się sprawdziło przy tym rozwiązaniu - a i można dodać ciekawy efekt preloaderka:)

http://blatek.ma.ciekawe.info/javascript/ob_image.html

Ten post edytował slafur 5.06.2007, 00:09:07
Go to the top of the page
+Quote Post
abc667
post 5.06.2007, 18:53:43
Post #7





Grupa: Zarejestrowani
Postów: 229
Pomógł: 0
Dołączył: 29.05.2007

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


yyy?
Przecież lightbox ma prelodader i na pewno efekt lepszy niż pojawianie się obrazka tylko

http://www.huddletogether.com/projects/lightbox2/
Go to the top of the page
+Quote Post
pinkejs
post 19.07.2007, 20:55:43
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 29.04.2007

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


Problem w XAJAX`ie można w bardzo prosty sposób rozwiązać, mianowicie wystarczy dopisać linijkę:

  1. <?php
  2. $objResponse->addScriptCall("initLightbox");
  3. ?>
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: 31.07.2025 - 06:17