Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Zmiana treści DIV'a bez przeładowania
Forum PHP.pl > Forum > Po stronie przeglądarki
Syri
Witam. Próbuję wykorzystać skrypt http://www.queness.com/post/328/a-simple-a...-with-jqueryphp jednak w efekcie w miejscu w którym powinien być żądany przeze mnie tekst widzę coś takiego:

TEEEKST 2'; break; case '#page3' : $page = 'Tekst 3'; break; case '#page4' : $page = 'Tekst 4'; break; } echo $page; ?>

Mój plik index.php wygląda tak:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  2. "http://www.w3.org/TR/html4/strict.dtd">
  3. <html lang="en">
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>Dokument bez tytułu</title>
  6. <link rel="stylesheet" href="css/style2.css" type="text/css" media="screen">
  7. <script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
  8. <script type="text/javascript" src="js/jquery.history.js"></script>
  9. <script type="text/javascript">
  10. $(document).ready(function () {
  11.  
  12. //Check if url hash value exists (for bookmark)
  13. $.history.init(pageload);
  14.  
  15. //highlight the selected link
  16. $('a[href=' + document.location.hash + ']').addClass('selected');
  17.  
  18. //Seearch for link with REL set to ajax
  19. $('a[rel=ajax]').click(function () {
  20.  
  21. //grab the full url
  22. var hash = this.href;
  23.  
  24. //remove the # value
  25. hash = hash.replace(/^.*#/, '');
  26.  
  27. //for back button
  28. $.history.load(hash);
  29.  
  30. //clear the selected class and add the class class to the selected link
  31. $('a[rel=ajax]').removeClass('selected');
  32. $(this).addClass('selected');
  33.  
  34. //hide the content and show the progress bar
  35. $('#content').hide();
  36. $('#loading').show();
  37.  
  38. //run the ajax
  39. getPage();
  40.  
  41. //cancel the anchor tag behaviour
  42. return false;
  43. });
  44. });
  45.  
  46.  
  47. function pageload(hash) {
  48. //if hash value exists, run the ajax
  49. if (hash) getPage();
  50. }
  51.  
  52. function getPage() {
  53.  
  54. //generate the parameter for the php script
  55. var data = 'page=' + encodeURIComponent(document.location.hash);
  56. $.ajax({
  57. url: "loader.php",
  58. type: "GET",
  59. data: data,
  60. cache: false,
  61. success: function (html) {
  62.  
  63. //hide the progress bar
  64. $('#loading').hide();
  65.  
  66. //add the content retrieved from ajax and put it in the #content div
  67. $('#content').html(html);
  68.  
  69. //display the body with fadeIn transition
  70. $('#content').fadeIn('slow');
  71. }
  72. });
  73. }
  74. </script>
  75. </head>
  76.  
  77. <div id="lewy_panel">
  78. <div id="logo">
  79. Logo
  80. </div>
  81. <div id="menu2">
  82. <ul id="menu">
  83. <li><a href="#page1" rel="ajax">Page 1</a></li>
  84. <li><a href="#page2" rel="ajax">Page 2</a></li>
  85. <li><a href="#page3" rel="ajax">Page 3</a></li>
  86. <li><a href="#page4" rel="ajax">Page 4</a></li>
  87. </ul>
  88. </div>
  89. <div id="stopka">
  90. Stopka
  91. </div>
  92. </div>
  93.  
  94. <div id="loading"></div>
  95.  
  96. <div id="content">
  97. <!-- Ajax Content -->
  98. </div>
  99.  
  100. </body>
  101. </html>


Styl CSS natomiast tak:

  1. @charset "utf-8";
  2. /* CSS Document */
  3. body {
  4. color:#FFF
  5. }
  6. #lewy_panel {
  7. position: absolute;
  8. display: inline-block;
  9. width: 294px;
  10. height: 100%;
  11. background-color:#000;
  12.  
  13. }
  14.  
  15.  
  16. #logo {
  17. position: relative;
  18. height: 160px;
  19. width: 100%;
  20. }
  21.  
  22. #menu2 {
  23. position: relative;
  24. display: inline-block;
  25. padding: 188px 0 0 48px;
  26. color:#FFF;
  27. }
  28.  
  29. #stopka {
  30. position: absolute; bottom: 5px;
  31. margin-top: 10px;
  32. }
  33.  
  34. #prawy_panel {
  35. width: 660px;
  36. left: 294px;
  37. position: absolute;
  38. height: 100%;
  39. background-color:#C30;
  40.  
  41. }
  42.  
  43. #loading {
  44. background: url(img/load.gif) no-repeat;
  45. display:none;
  46. }
  47.  
  48. #content {
  49. width: 660px;
  50. left: 294px;
  51. position: absolute;
  52. height: 100%;
  53. background-color:#C30;
  54. font-family:arial;
  55. font-size:11px;
  56. }


a loader.php tak:
  1. <?
  2.  
  3. switch($_GET['page']) {
  4. case '#page1' : $page = 'Tekst 1 '; break;
  5.  
  6. case '#page2' : $page = '<b>TEEEKST 2</b>'; break;
  7.  
  8. case '#page3' : $page = 'Tekst 3'; break;
  9.  
  10. case '#page4' : $page = 'Tekst 4'; break;
  11.  
  12. }
  13.  
  14. echo $page;
  15. ?>


Proszę o pomoc w prawidłowym użyciu skryptu.
viking
A w jaki sposób osadziłeś PHP, bo wygląda że się nie wykonuje.
Syri
Oryginalnie w skrypcie jest fragment
  1. function getPage() {
  2.  
  3. //generate the parameter for the php script
  4. var data = 'page=' + encodeURIComponent(document.location.hash);
  5. $.ajax({
  6. url: "loader.php",
  7. type: "GET",
  8. data: data,
  9. cache: false,
  10. success: function (html) {
  11.  
  12. //hide the progress bar
  13. $('#loading').hide();
  14.  
  15. //add the content retrieved from ajax and put it in the #content div
  16. $('#content').html(html);
  17.  
  18. //display the body with fadeIn transition
  19. $('#content').fadeIn('slow');
  20. }


I to chyba on odpowiada za php.
mortus
Zakładam, że masz PHP "postawione"? Jeśli tak to Twój PHP ma wyłączoną opcję short_open_tag i zamiast <? powinieneś użyć <?php w pliku loader.php.
Syri
Cytat(mortus @ 23.02.2013, 10:28:14 ) *
Zakładam, że masz PHP "postawione"? Jeśli tak to Twój PHP ma wyłączoną opcję short_open_tag i zamiast <? powinieneś użyć <?php w pliku loader.php.

Dobrze prawisz mój przyjacielu. Dziękuję.

Teraz mam kolejny problem z tym samym skryptem. Otóż po jego użyciu nie mogę używać żadnych innych magicznych skryptów jQuery. Szukam czegoś do ładnego wyświetlania zdjęć w boxie jednak już trzy kolejne odpadły ponieważ albo nie działają one albo powodują awarie skryptu od przeładowania.
StrefaPi
Używasz bardzo starego jquery... Tutaj może być problem z błędami w boxach... Zoptymalizuj skryptów do przeładowywania do nowego jquery i będzie git...
mortus
Cytat(StrefaPi @ 2.03.2013, 10:17:47 ) *
Używasz bardzo starego jquery... Tutaj może być problem z błędami w boxach... Zoptymalizuj skryptów do przeładowywania do nowego jquery i będzie git...

Co ma piernik do wiatraka. Skrypt PHP się nie wykonuje, dlatego jego fragment pojawia się w odpowiedzi na żądanie AJAX. Wersja jQuery nie ma tutaj znaczenia.
StrefaPi
Cytat(mortus @ 2.03.2013, 13:24:48 ) *
Co ma piernik do wiatraka. Skrypt PHP się nie wykonuje, dlatego jego fragment pojawia się w odpowiedzi na żądanie AJAX. Wersja jQuery nie ma tutaj znaczenia.


to, że się php nie wykonywał już zostało rozwiązane natomiast Syri zadał drugie pytanie...

przeczytałeś drugie pytanie Syri o boxach i zdjęciach, które się nie wyświetlają? bo chyba nie... i moja odpowiedź w tym wypadku jest prawidłowa i na temat...

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.