Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery], ładownia treści z zew. pliku do diva
Forum PHP.pl > Forum > XML, AJAX
vahooz
Witam,

Problem z którym nie mogę sobie poradzić od 6 h. Wygląda to tak:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="./css/style.css" />
  6. <link rel="stylesheet" type="text/css" href="./css/rating.css" />
  7. <title>Test</title>
  8. <script type="text/javascript" src="./js/jquery.js"></script>
  9. <script type="text/javascript" src="./js/jquery.rating.js"></script>
  10. <script type="text/javascript">
  11. function ahah(url, target) {
  12. document.getElementById(target).innerHTML = ' Ładuje dane...';
  13. if (window.XMLHttpRequest) {
  14. req = new XMLHttpRequest();
  15. } else if (window.ActiveXObject) {
  16. req = new ActiveXObject("Microsoft.XMLHTTP");
  17. }
  18. if (req != undefined) {
  19. req.onreadystatechange = function() {ahahDone(url, target);};
  20. req.open("GET", url, true);
  21. req.send("");
  22. }
  23. }
  24. function ahahDone(url, target) {
  25. if (req.readyState == 4) {
  26. if (req.status == 200) {
  27. document.getElementById(target).innerHTML = req.responseText;
  28. } else {
  29. document.getElementById(target).innerHTML=" AHAH Error:\n"+ req.status + "\n" +req.statusText;
  30. }
  31. }
  32. }
  33. function load(name, div) {
  34. ahah(name,div);
  35. return false;
  36. }
  37.  
  38. $(document).ready(function() {
  39. load('./html_forms/ankieta.php','frame_form');
  40. $('#rate1').rating('www.url.php', {maxvalue:5});
  41. });
  42. </head>
  43. <div>
  44. <form>
  45. <div id="rate1" class="rating">&nbsp;</div>
  46. <div class="frame" id="frame_form" >&nbsp;</div>
  47. </form>
  48. </div>
  49. </body>
  50. </html>

Jak widać z powyższego kodu ładuję plik ankieta.php do div'a frame_form
Plik ankieta zawiera:
  1. <div id="rate1" class="rating">
  2. </div>

W divie <div id="rate1" class="rating"></div> ładowany jest plugin star-rank.
Div ten jest osadzony w index.php i w ankieta.php. W index.php działa a w ankieta.php nie.
Ma ktoś jakiś pomysł, sugestie?

Pozdrawiam.
erix
Skoro używasz jQuery, to na chorobę ręcznie inicjujesz AJAX...?

Dokumentacja: $().load/$.get/$.ajax.
vahooz
Cytat(erix @ 28.08.2009, 13:30:19 ) *
Skoro używasz jQuery, to na chorobę ręcznie inicjujesz AJAX...?

Dokumentacja: $().load/$.get/$.ajax.



Dzięki za odpowiedź, ale co to ma za znaczenie?
zmieniłem kod na
  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $.post("./html_forms/ankieta.php", function(data){
  4. if(data.length >0) {
  5. $('#frame_form').html(data);
  6. }
  7. },"html");
  8.  
  9. $('#rate1').rating('www.url.php', {maxvalue:5});
  10. });


I dalej to samo. Nie działają skrypty ani css w ankieta.php.
erix
Cytat
Dzięki za odpowiedź, ale co to ma za znaczenie?

Masz kupione alufelgi, komplet czterech, a Ty jeździsz na trzech + 1 stalowa. tongue.gif

Cytat
I dalej to samo. Nie działają skrypty ani css w ankieta.php.

A nie korzystasz przypadkiem z mod_rewrite...?
vahooz
Cytat(erix @ 28.08.2009, 14:26:27 ) *
Masz kupione alufelgi, komplet czterech, a Ty jeździsz na trzech + 1 stalowa. tongue.gif


A nie korzystasz przypadkiem z mod_rewrite...?


mod_rewrite - wyłączony.
Zauważyłem, że style nie działają do znaczników formularzy (input, texarea itp) do czcionek działają, skrypty podobnie.
Czy ja popełniłem jakiś błąd logiczny?
Wg mojej wiedzy, jak jest już dodany skrypt w <head> to on powinien działać dla całej strony głównej i również dla treści ładowanych w div'y.
(pomimo, że są z zewnętrznych plików).
erix
Pokaż gdzieś to na żywo.
vahooz
Dobra zrobiłem... problem był banalny.
Wystarczyło dodać kod inicjalizujący obiekty w zewnętrznym pliku zaraz po jego załadowaniu:
  1. function ahahDone(url, target) {
  2. if (req.readyState == 4) {
  3. if (req.status == 200) {
  4. document.getElementById(target).innerHTML = req.responseText;
  5. //poniższe 2 linijki były w złym miejscu
  6. for($x=2;$x<9;$x++)
  7. $('#rate'+$x).rating('www.url.php', {maxvalue: 5, increment: .5});
  8. } else {
  9. document.getElementById(target).innerHTML=" AHAH Error:\n"+ req.status + "\n" +req.statusText;
  10. }
  11. }
  12. }


Może komuś się przyda... pozdrawiam.
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.