Bild laden ohne Seite neu laden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Bild laden ohne Seite neu laden

    hallo, habe ein script welches mir auf der linken seite Thumbnails anzeigt und auf der rechten Seite dann das Bild in groß angezeigt wird. Allerdings wird immer wieder die neue Seite geladen und die Variable übergeben wie der pfad wo das Bild liegt und der Bildname.

    Ich möchte das ganze mit AJAX machen habe aber noch nie damit gearbeitet und hoffe hier auf Hilfe.

    Hier ein Teil meines Scripts wo die Thmbnails erstellt werden und die Seite neu geladen wird.

    hoffe auf Hilfe und sage schon mal danke.

    Quellcode

    1. <?
    2. $pfad=$_GET['pfad'];
    3. $start = isset($_GET['start']) ? (int) $_GET['start'] : 0;
    4. $handle = opendir($pfad);
    5. $handle2 = opendir($pfad);
    6. $a=-1;
    7. $i=0;
    8. echo "<table border='0' valign='top'><tr valign='top'><td width='10'></td>";
    9. while (false !== ($file2 = readdir($handle2)))
    10. {
    11. $b++;
    12. }
    13. $anzahl=($b/2)-1;
    14. while (false !== ($file = readdir($handle)))
    15. {
    16. $pic = explode ("_thumb",$file);
    17. $pic2 = explode (".",$pic[0]);
    18. if ($pic[1] == ".jpg")
    19. {
    20. }
    21. else
    22. {
    23. if ($a++ <= $start)
    24. {
    25. continue;
    26. }
    27. if ($i != 18)
    28. {
    29. if ($file != "." && $file != "..")
    30. {
    31. echo "<td valign='top' style='CURSOR: hand'><a href='index.php?pfad=".$pfad."&pic=".$pic2[0]."&anzahl=".$anzahl."'>";
    32. echo "<img border='0' src=".$pfad."/".$pic2[0]."_thumb.jpg></a></td><td width='7'></td>";
    33. }
    34. $i++;
    35. if ($i % 3 == 0)
    36. {
    37. echo "<td width='80'></td></tr><tr height='6' valign='top'><td></td></tr><tr valign='top'><td></td>";
    38. }
    39. }
    40. }
    41. }
    42. closedir($handle);
    43. $start=$start+18;
    44. echo "</tr></table></td></tr><tr><td></td><td><table><tr><td>";
    45. ?>
    Alles anzeigen
  • hi

    da benötigst du kein AJAX für.
    ajax würdest du benutzen, wenn sich die inhalte von der linken seite ständig ändern und du diese nachladen müsstest

    hier ein einfaches beispiel für die lösung deines problems

    Quellcode

    1. <script type="text/javascript">
    2. <!--
    3. function change(inhalt) {
    4. document.getElementById('bild').src = inhalt;
    5. }
    6. //-->
    7. </script>
    8. <a href="#" onclick="change('easy.jpg')">easy</a>
    9. <a href="#" onclick="change('coding.jpg')">coding</a>
    10. <a href="#" onclick="change('coder.jpg')">coder</a>
    11. <a href="#" onclick="change('wiki.jpg')">wiki</a>
    12. <img src="default.jpg" id="bild" />
    Alles anzeigen
  • Cool Danke, habe Sinn verstanden.

    Wenn ich alle sbei mir rein packe in mein Script läd er trotzdem nicht die Bilder.
    Kann es sein, da ich ja schon vorher jedemenge Variablen überge und diese jedesmal wieder übergeben muss, da dort auf mein pfad und mein Bildname drin steht, das es deswegen nicht klappt?

    denn bei mir steht die # nicht direkt hinter index.php, also sprich index.php#, sondern bei mir steht index.php?var1=12&var2=11&var3=14#

    Kann das das Problem sein? Wenn ja wie bekomme ich es hin das die # vorne steht.

    P.S: die Variablen brauche ich aber 100%ig da ich mir daraus meine Dateinamen mit den Pfaden zusammen bastele.

    Hier mein Script wies jetzt ist:

    Quellcode

    1. <?
    2. $pfad=$_GET['pfad'];
    3. $start = isset($_GET['start']) ? (int) $_GET['start'] : 0;
    4. $handle = opendir($pfad);
    5. $handle2 = opendir($pfad);
    6. $a=-1;
    7. $i=0;
    8. echo "<table border='0' valign='top'><tr valign='top'><td width='10'></td>";
    9. while (false !== ($file2 = readdir($handle2)))
    10. {
    11. $b++;
    12. }
    13. $anzahl=($b/2)-1;
    14. while (false !== ($file = readdir($handle)))
    15. {
    16. $pic = explode ("_thumb",$file);
    17. $pic2 = explode (".",$pic[0]);
    18. if ($pic[1] == ".jpg")
    19. {
    20. }
    21. else
    22. {
    23. if ($a++ <= $start)
    24. {
    25. continue;
    26. }
    27. if ($i != 18)
    28. {
    29. if ($file != "." && $file != "..")
    30. {
    31. echo "<td valign='top' style='CURSOR: hand'>
    32. echo "<a href='#' onclick=\"change(' ".$pfad."/".$pic." ')\">";
    33. echo "<img border='0' src=".$pfad."/".$pic2[0]."_thumb.jpg></a></td><td width='6'></td>";
    34. }
    35. $i++;
    36. if ($i % 3 == 0)
    37. {
    38. echo "<td width='80'></td></tr><tr height='6' valign='top'><td></td></tr><tr valign='top'><td></td>";
    39. }
    40. }
    41. }
    42. }
    43. closedir($handle);
    44. $start=$start+18;
    45. echo "</tr></table></td></tr><tr><td></td><td><table><tr><td>";
    46. ?>
    Alles anzeigen




    weiter oben im Script ist dann noch das Stück wo das Bild hin soll. Das sieht so aus:

    blank.jpg ist einfach ein weißes rechteck, da ich am Anfang nicht möchte das ein bild angezeigt wird.

    Quellcode

    1. <? php
    2. echo "<img src='blank.jpg' id='bild' />";
    3. ?>






    Danke und Gruß
    Jochen

    Quellcode

    Quellcode

    Quellcode

  • ah okay, funktioniert soweit, jetzt alles top. Bild wird geladen und ich bin soweit echt happy. Allerdings habe ich folgendes Problem.
    dieses Script

    Quellcode

    1. echo "<a href='#' onclick=\"change(' ".$pfad."/".$pic[0]." ')\"><img border='0' src='".$pfad."/".$pic2[0]."_thumb.jpg'></a>";


    steht unter diesem:

    Quellcode

    1. echo "<img src='default.jpg' id='bild' />";


    somit funktioniert es nicht und mein IE sagt mir immer das ein Fehler auf der Seite sei.

    Sobald ich das Script wo mein bild angezeigt wird unter das andere mache geht es. Allerdings kann ich das nicht machen, da es bei mir nach oben muss. Sonst ist das Bild später nicht da wos hin soll.

    Was kann ich tun?

    LG
    jochen
  • hi!

    sorry wegen der totengräberei. Ja ich weiss, dass sich sowas eigentlich nicht gehört..

    aber ich habe ein problem, dass perfekt auf dieses hier projezieren lässt. Links sind die thumbnails, rechts soll das bild groß angezeigt werden. Jedoch funktioniert das ganze noch NICHT so wie erhofft...
    Mein code:

    Quellcode

    1. <script type="text/javascript">
    2. <!--
    3. function change(inhalt) {
    4. document.getElementById('bild').src = inhalt;
    5. } //-->
    6. </script>
    7. <style type="text/css">
    8. //blabla
    9. </style>
    10. <?php
    11. //datenbank anfragen
    12. $sql = "SELECT Pfad,PfadLang FROM FotosTH WHERE Ort='Bayreuth 06'";
    13. $result = mysql_query($sql) OR die(mysql_error());
    14. ?><table border=2 width=1000 height=400><tr><td class="scroll" style="overflow:scroll;"><div align="center" style="width: 100%; height: 100%; overflow: scroll;">
    15. <?php
    16. while($row = mysql_fetch_assoc($result)) {
    17. ?><a href="#" onclick="change('<?php $row['PfadLang']?>')"><?php
    18. echo "<img border=\"0\" src=\"".$row['Pfad']."\"><br>";
    19. ?></a><?php
    20. }
    21. ?></div>
    22. </td><td>
    23. <img src="" id="bild" >
    24. </td></tr></table>
    Alles anzeigen

    Hab das ganze etwas bearbeitet der übersicht halber.
    Wie man sieht ist oben einfach das script tag (wie oben erwähnt) und dann auch der link ist kopiert, das image ganz unten hat die id "bild" . Nun scheint es aber noch irgendwo eine winzigkeit falsch zu sein. Ich komme einfach nicht von selbst drauf... hat einer bitte eine idee für mich?
  • Sorry, kann dem nicht ganz folgen.

    Das ganze <a href ... > tag liegt doch ausserhalb von ?> ... <?php tags. Dh es ist kein echo notwendig.

    Bitte bitte nochmal etwas langsamer für mich erläutern... :(

    /edit:
    ah entschuldigung. Hab das nun doch modifiziert ausprobiert: das mit den tags ?> ...<?php gelöscht und alles in das echo reingepackt. Nun funzt es tatsächlich! Super sache :)

    Danke für die schnelle antwort und auch allgemein für die hilfe in diesem thread ;)
    (kannst ja unter hits sehen, wie oft der thread in google gefunden wird und wievielen damit bestimmt schon geholfen wurde :) )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von michi2002k2 ()