Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] Jak zrobic aby po kliknieciu w link pod spodem pojawila sie tresc danego div-a lub strony html
Forum PHP.pl > Forum > Przedszkole
jaskooo
Witam wszystkich.
Czarna dziura.

Sprawa wygląda tak:

Chciałbym aby po kliknięciu w link pod spodem wyświetlała sie zawartość odpowiedniego do linka DIV-a lub strony HTML, bez przeładowywania strony.

Wiem, ze to jest podstawa Ajax-a i mógłbym przekopiować gotowy skrypt, ale chciałbym sie nauczyć jak to działa.


Strona wyglada nastepujaco:

galeria.php

  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" xml:lang="pl" lang="pl">
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="style.css" />
  6. <title>Galeria</title>
  7.  
  8.  
  9. </head>
  10. <div id="main">
  11.  
  12. <div>
  13. <li><a href="pierwsza.php">Pierwsza</a></li>
  14. <li>href="drugie.php">Druga</a></li>
  15. </div>
  16.  
  17.  
  18.  
  19. </div>
  20.  
  21. </body>
  22. </html>



pierwsza.php
  1.  
  2.  
  3. <?php
  4.  
  5. $dir_arr = scandir('pierwsza/');
  6. array_shift($dir_arr);
  7. array_shift($dir_arr);
  8. array_shift($dir_arr);
  9. foreach($dir_arr as $file)
  10. {
  11.  
  12. echo "<a href=\"\" onclick=\"window.open('zdjecia/$file', '$file','menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no')\"><img style='width: 100px;' src=\"zdjecia/$file\"></img></a>";
  13.  
  14.  
  15. }
  16.  
  17.  
  18.  
  19.  
  20. ?>
  21. </body>
  22. </html>


druga.php
  1. <?php
  2.  
  3. $dir_arr = scandir('druga/');
  4. array_shift($dir_arr);
  5. array_shift($dir_arr);
  6. array_shift($dir_arr);
  7. foreach($dir_arr as $file)
  8. {
  9.  
  10. echo "<a href=\"\" onclick=\"window.open('zdjecia/$file', '$file','menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no, width=".$szer.", height=".$wys."')\"><img style='width: 100px;' src=\"zdjecia/$file\"></img></a>\n";
  11.  
  12. }
  13.  
  14.  
  15.  
  16.  
  17. ?>




Proszę o pomoc exclamation.gif!!


Z gory dziekuje smile.gif
nexis
advAJAX
jaskooo
Wiem, mam.

Poprostu nie mam pomyslu jak to wykonac. Zdarza sie czasami, ze szukam rozwiazania, a pozniej okazuje sie, ze szukalem za bardzo skomplkowanego.

W tym przypadku pewnie tez tak bedzie.


Prosze o podpoiwiedz?
abc667
wywołujesz ajaxa z urlem swoim np drugie.php, ustawiasz mime na text w parametrach a potem w onsucess wrzucasz responsetext do diva, kod masz w przykładach advajax potrzebny tutaj
jaskooo
Strasznie sie czuje zarzenowany, ale nie moge tego zaimplementowac.

Zrobiilem to bez Ajax-a, ale na dzien dobry sa wlaczone dwie galeria, a ja chce aby wyswietlana byla albo jedna, alb druga:



kod wyglada tak:


  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" xml:lang="pl" lang="pl">
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="style.css" />
  6. <title>Galeria</title>
  7. <script type="text/javascript" language="javascript">
  8. // <![CDATA[
  9. function showHide(id) {
  10.  
  11. obj = document.getElementById(id);
  12. obj.style.display = (obj.style.display == "block" ? "none" : "block");
  13. }
  14.  
  15. // ]]>
  16.  
  17. </head>
  18. <div id="main">
  19.  
  20. <div>
  21. <li><a href="java script:showHide('1')">Pierwsza</a></li>
  22. <li><a href="java script:showHide('2')">Druga</a></li>
  23. </div>
  24.  
  25.  
  26. <div style="display: block;" id="1">
  27.  
  28. <?php
  29.  
  30.  
  31. $dir_arr = scandir('pierwsza/');
  32. array_shift($dir_arr);
  33. array_shift($dir_arr);
  34. array_shift($dir_arr);
  35. foreach($dir_arr as $file)
  36. {
  37.  
  38. echo "<a href=\"\" onclick=\"window.open('pierwsza/$file', '$file','menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no')\"><img style='width: 100px;' src=\"pierwsza/$file\"></img></a>";
  39.  
  40.  
  41. }
  42.  
  43.  
  44.  
  45.  
  46. ?>
  47.  
  48. </div>
  49.  
  50.  
  51. <div style="display: block;" id="2">
  52.  
  53. <?php
  54.  
  55.  
  56. $dir_arr = scandir('druga/');
  57. array_shift($dir1_arr);
  58. array_shift($dir1_arr);
  59. array_shift($dir1_arr);
  60. foreach($dir_arr as $file)
  61. {
  62. echo "<a href=\"\" onclick=\"window.open('druga/$file', '$file','menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no')\"><img style='width: 100px;' src=\"druga/$file\"></img></a>";
  63. }
  64.  
  65.  
  66.  
  67.  
  68. ?>
  69.  
  70. </div>
  71.  
  72.  
  73. </div>
  74.  
  75. </body>
  76. </html>



Jak mam wywolac ta ajaxowa funkcje poprzez klikniecie. Wiem ze to zenujace ale mam jakas dziure w mozgu.

Please help!



czy ptrzypadkiem tak:

  1. <a href="#" onclick="function('1')"></a>



questionmark.gifquestionmark.gif




Tak nie dziala:

galeria.php
  1. ]
  2. advAJAX.get({
  3. url: "pierwsza.php",
  4. onInitialization : function() {
  5. /* Ukrycie warstwy */
  6. someDiv.style.visibility = "hidden";
  7. },
  8. onSuccess : function(obj) {
  9. /* Ustawienie nowej, pobranej z serwera wartości */
  10. someDiv.innerHTML = obj.responseText;
  11. },
  12. onError : function(obj) {
  13. /* W przypadku wystąpienia błędu wyświetlenie komunikatu */
  14. alert("Error: " + obj.status);
  15. },
  16. onFinalization : function() {
  17. /* Ponowne pokazanie warstwy po zakończeniu wszystkich operacji */
  18. someDiv.style.visibility = "visible";
  19. }
  20. });
  21. // ]]>
  22.  
  23. </head>
  24. <div id="main">
  25.  
  26. <div>
  27. <li><a href="" onclick='function('1')'>Pierwsza</a></li>
  28. <li><a href="" onclick='function('2')'>Druga</a></li>
  29. </div>
  30. [/html
  31.  
  32. pierwsza.php
  33.  
  34. [html]
  35. <div style="visibility: visible"id="1">
  36.  
  37. <?php
  38.  
  39.  
  40. $dir_arr = scandir('pierwsza/');
  41. array_shift($dir_arr);
  42. array_shift($dir_arr);
  43. array_shift($dir_arr);
  44. foreach($dir_arr as $file)
  45. {
  46.  
  47. echo "<a href=\"\" onclick=\"window.open('pierwsza/$file', '$file','menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no')\"><img style='width: 100px;' src=\"pierwsza/$file\"></img></a>";
  48.  
  49.  
  50. }
  51.  
  52.  
  53.  
  54.  
  55. ?>
  56.  
  57. </div>
abc667
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>...</title>
  3. <script type="text/javascript" src="advajax.js"></script>
  4. <script type="text/javascript">
  5.  
  6. function dd(plik)
  7. {
  8. advAJAX.get({
  9. url : plik,
  10. mimeType: 'text/html',
  11. onSuccess : function(obj) { document.getElementById("cnt").innerHTML = obj.responseText; }
  12. });
  13.  
  14. }
  15.  
  16.  
  17. </head>
  18.  
  19. <div id="cnt">
  20.  
  21. </div>
  22. <a href="#" onclick="dd('plik.php'); return false;">pobierz</a>
  23. </body>
  24. </html>

ok, masz to co napisałem w poście wcześniej
Kamson
gdzie pliki z galeriami to galeria1,galeria2 ....galeria%i ...

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  4. <link rel="stylesheet" type="text/css" href="style.css" />
  5.  
  6. <script type="text/javascript" src="advajax.js"></script>
  7. <script type="text/javascript" language="javascript">
  8. // <![CDATA[
  9.  
  10. function openGalery(nr) {
  11.  
  12. advAJAX.get({
  13.  
  14. url: "galeria"+nr+".php",
  15. tag: "galery_div",
  16. timeout: 9000,
  17.  
  18. onTimeout : function(){
  19. alert('Uplynal czas zadania, spróbuj ponownie!');
  20. },
  21.  
  22. onLoading : function(obj) {
  23. document.getElementById("galery_div").innerHTML = "Ładuję....";
  24. },
  25.  
  26. onSuccess : function(obj) {
  27. document.getElementById("galery_div").innerHTML = obj.responseText;
  28. },
  29.  
  30. onError : function(obj) {
  31. alert('Wystąpił błąd!')
  32. }
  33.  
  34. });
  35. }
  36.  
  37. // ]]>
  38. </script>
  39. <title>Galeria</title>
  40. </head>
  41. <div id="main">
  42. <ul>
  43. <li><a href="java script:openGalery('1')">Pierwsza</a></li>
  44. <li><a href="java script:openGalery('2')">Druga</a></li>
  45. </ul>
  46. <div id="galery_div"></div>
  47. </div>
  48. </body>
  49. </html>
jaskooo
Chlopaki tak jak mowilem - to proste tylko kopa trzeba.

Wszystko dziala exclamation.gif!!

Juz moge dzialac z Ajax-em

Ja tak mam wystarczy mi podpowiedziec schemat i lece!!!



Wielkie dzieki
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.