Problem mit html und javascript

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

    • Problem mit html und javascript

      hi, also ich hab ne menge bilder auf nem webftp host. damit die halbwegs anständig angezeigt werden, hab ich was kleines zusammen gesuchen. irgendwie funktionieren die vor und zurück buttons nicht wie sie sollen. vielleicht hat einer ne ahnung, wo der fehler ist.

      HTML-Quellcode

      1. <html>
      2. <head>
      3. <title>Simple JavaScript Dia-Show</title>
      4. </head>
      5. <body>
      6. <script language=JavaScript>
      7. var aktuell=1293, ende=1907;
      8. for(i=aktuell; i < ende; i++)
      9. {
      10. Animation[i]=new Image();
      11. Animation[i].src=bild[i];
      12. }
      13. function blaettern(richtung)
      14. {
      15. if(aktuell+richtung >=1 && aktuell+richtung <= ende) aktuell += richtung;
      16. document.images.picture.src=Animation[aktuell].src;
      17. }
      18. </script>
      19. <b><font size=5>I Scream For Ice Cream - 2010-10-28 - Your Gig Bandcontest in Bad Breisig</font></b><br>
      20. Das komplettes Archiv kann <a href="http://www.share.cx/files/631894669248/isfuc.rar.html">hier</a> heruntergelanden werden. <br><br>
      21. << <a href="javascript: blaettern(-1);"> Zur&uuml;ck</a>&nbsp;
      22. <a href="javascript: blaettern(1);">Vorw&auml;rts</a> >> <br><br>
      23. <img src="IMG_1293.jpg">
      24. </body>
      25. </html>
      Alles anzeigen


      hier die site
      falls richtig, freirunde
    • Was steht in dem bild[] ?

      willst du bei der Zuweisung

      Quellcode

      1. Animation[i].src=bild[i];


      nicht was anderes machen als da steht?

      EDIT: Hab zwar noch nie was mit javascript gemacht aber wenn ich das richtig sehe ist die Zeile hier auch quark

      Quellcode

      1. document.images.picture.src=Animation[aktuell].src;


      Siehe hier: selfhtml.net/javascript/objekte/images.htm
      Danach müsste es eher lauten

      Quellcode

      1. document.images[0].src = Animation[aktuell].src;



      EDIT2: und noch was

      Quellcode

      1. if(aktuell+richtung >=1 && aktuell+richtung <= ende) aktuell += richtung;

      da kann dein aktuell also werte von [1 - ende] annehmen. Schau dir aber mal an welche Indizies dein Animations array denn so hat :D also wo da Bilder drinn stehen


      Nur mal so als anregungen wenn du garnicht klarkommst schreib mich an dann mach ich dir das schnell.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von downtimes ()

    • Wo ist denn die Variable "bild" definiert?
      Du solltest vielleicht eine Liste aller Bildnamen Serverseitig erstellen und mit JSON an dein JavaScript übergeben, falls du nicht anderweitig "bild" definiert hast und ich es einfach übersehen habe.
    • mhh also ich hab das ganze von hier

      HTML-Quellcode

      1. <html>
      2. <head>
      3. <title>Simple JavaScript Dia-Show</title>
      4. <meta name="author" content="flaexx">
      5. </head>
      6. <script language=JavaScript>
      7. Animation=new Array();
      8. bild=new Array();
      9. bild[1]='bild00.jpg';
      10. bild[2]='bild01.jpg';
      11. bild[3]='bild02.jpg';
      12. bild[4]='bild03.jpg';
      13. bild[5]='bild04.jpg';
      14. bild[6]='bild05.jpg';
      15. bild[7]='bild06.jpg';
      16. bild[8]='bild07.jpg';
      17. bild[9]='bild08.jpg';
      18. bild[10]='bild09.jpg';
      19. bild[11]='bild10.jpg';
      20. var aktuell=0, ende=12-1;
      21. for(r=1; r < 12; r++)
      22. {
      23. Animation[r]=new Image(); Animation[r].src=bild[r];
      24. }
      25. function blaettern(richtung)
      26. {
      27. if(aktuell+richtung >=1 && aktuell+richtung <= ende) aktuell += richtung;
      28. document.images.depp.src=Animation[aktuell].src;
      29. }
      30. </script>
      31. <body>
      32. << <a href="javascript: blaettern(-1);"> Zur&uuml;ck</a> &nbsp;
      33. <a href="javascript: blaettern(1);">Vorw&auml;rts</a> >> <br><br>
      34. <img src="bild00.jpg" name="depp">
      35. <script type="text/javascript">
      36. var pkBaseURL = (("https:" == document.location.protocol) ? "https://track.funpic.de/" : "http://track.funpic.de/");
      37. document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
      38. </script><script type="text/javascript">
      39. try {
      40. var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 3);
      41. piwikTracker.trackPageView();
      42. piwikTracker.enableLinkTracking();
      43. } catch( err ) {}
      44. </script><noscript><p><img src="http://track.funpic.de/piwik.php?idsite=3" style="border:0" alt="" /></p></noscript>
      45. </body>
      46. </html>
      Alles anzeigen


      zeile 38 bis 47 hab ich weg gelassen, da ich der meinung war, dass es für den zweck nicht nötig ist.
      hab dann den rest ein wenig an meine bildnamen angepasst, aber irgendwie wohl falsch, wahrscheinlich zu viel copy paste....
      ne liste aller bildernamen wär ganz cool, denn zwischen ben bildern fehlt oft welche, deswegen haben sie keine aufeinanderfolgende reihenfolge (hätte das später mit ner abfrage abgefangen)...

      wenns einer grad hinrichten kann, solls mir auch recht sein, ich mach 2 mal im jahr was mit html, dann frag ich dann ^^
      falls richtig, freirunde
    • Dein Problem ist: Du sagst in Zeile 11 von deinem Quellcode

      Quellcode

      1. Animation[i].src=bild[i];

      Hast aber die Definition der Variable "bild", welche im original Quellcode in Zeile 8 bis 19 passiert nicht gemacht.
      Das hat zur Folge, dass auch deine Variable Animation leer ist, welche eigentlich die Dateinamen der Bilder beinhalten sollte.
      Du hast nun die Möglichkeit entweder die Bilder so zu benennen, dass du durch ein Schema eines nach dem anderen aufrufen kannst (beispielsweise mit bild1.jpg, bild2.jpg, bild3.jpg ohne "Lücken" beim zählen) oder du übergibst an das JavaScript eine Liste aller Bildnamen.
      Natürlich gibts auch Möglichkeiten nur das nächste und vorherige Bild zu übergeben und per Ajax zu ändern, allerdings würde das glaube ich deinen "2 mal im Jahr"-Rahmen sprengen.
    • mhh dann fänd ich ne liste aller bildernamen geschmeidiger. werde so ne site für alle zukünftigen fotos ja wieder benutzen, am besten dann mit jedem event im eigenen ordner.
      so, und wie bekomm ich nun die liste aller bildernamen zurück?
      wird das dann hardcoded als array im quellcode stehen?
      denn bei knapp 400 bildern und sich immer wechselnder anzahl von bildern ist das ziemlich nervig.
      falls richtig, freirunde
    • Hab dir was gebaut, wobei du versuchen solltest auch zu verstehen, was genau im Quellcode passiert (hab Kommentare dazu geschrieben).
      Kopiere folgenden Code in die aufgerufene .php Datei:
      Quellcode

      PHP-Quellcode

      1. <?php
      2. # Funktion liest alle Dateipfade aus von Dateien mit den Endungen in $type
      3. function read_files($path, $type) {
      4. $types = array_flip(explode(',', $type));
      5. $result = array();
      6. $handle = opendir($path);
      7. if ($handle) {
      8. while (false !== ($file = readdir($handle))) {
      9. if ($file != "." && $file != "..") {
      10. $name = $path . "/" . $file;
      11. if (is_dir($name)) {
      12. $ar = read_files($name, $type);
      13. foreach ($ar as $value)
      14. {
      15. $result[] = $value;
      16. }
      17. } else {
      18. if(isset($types[pathinfo($file, PATHINFO_EXTENSION)])) $result[] = $name;
      19. }
      20. }
      21. }
      22. }
      23. closedir($handle);
      24. return $result;
      25. }
      26. #Setzen der Variablen und Aufruf der Funktion
      27. $type = 'jpg,gif,png'; // Gib mit Komma voneinander getrennt die Dateitypen an, welche ausgegeben werden sollen.
      28. $path = './images'; // Der Ordner, aus welchem die Dateien ausgelesen werden. Es werden auch alle Unterordnern von $path ausgelesen.
      29. $images = read_files($path, $type);
      30. #Zählt die Anzahl der ausgelesenen Dateien
      31. $cnt = count($images);
      32. #Codiert die Pfade so, dass JavaScript das Array nutzen kann
      33. $json = json_encode($images);
      34. #JavaScript Teil, welcher direkt beim Seitenaufbau ausgeführt wird
      35. #Übersetzt das Array mit den Dateipfaden
      36. $js_static = "
      37. var nmb = 0;
      38. var cnt = ".$cnt.";
      39. var images = eval('(' + '".$json."' + ')');
      40. var txt = '';
      41. ";
      42. #Die Funktion zum wechseln der Bilder
      43. $js_functions = "
      44. function switchImg(drct) {
      45. nmb = parseInt(nmb) + parseInt(drct);
      46. if (nmb < 0) nmb = 0;
      47. if (nmb > cnt-1) nmb = parseInt(cnt)-1;
      48. document.images['view'].src = images[nmb];
      49. }
      50. ";
      51. #Das HTML welches ausgegeben werden soll
      52. $html = '<html>
      53. <head>
      54. <title>Test</title>
      55. <script language="javascript" type="text/javascript">'.$js_functions.'</script>
      56. </head>
      57. <body>
      58. <div>
      59. <input id="prevBtn" type="button" value="previous" onClick="switchImg(\'-1\');"></input>
      60. <input id="nextBtn" type="button" value="next" onClick="switchImg(\'1\');"></input>
      61. <img src="'.$images[0].'" id="view" />
      62. </div>
      63. <script language="javascript" type="text/javascript">'.$js_static.'</script>
      64. </body>
      65. </html>';
      66. #Ausgabe
      67. echo $html;
      68. ?>
      Alles anzeigen
    • größtenteils versteh ichs ^^
      bekomm allerdings die meldung

      Quellcode

      1. Fatal error: Call to undefined function: json_encode() in /data/members/free/tripod/de/k/e/n/kenshinz/htdocs/java/show.php on line 42

      ich hab mit phpinfo(INFO_GENERAL); herausgefunden, dass PHP Version 4.4.9 dort läuft. könnte das ein problem sein?
      falls richtig, freirunde
    • Wie du aus dem Fehler entnehmen konntest ist die PHP Funktion json_encode() nicht verfügbar.
      Macht aber nicht viel, das ganze kann man auch ohne JSON lösen. Hier ein etwas anderer Ansatz:

      Quellcode

      HTML-Quellcode

      1. function read_files($path, $type) {
      2. $types = array_flip(explode(',', $type));
      3. $result = array();
      4. $handle = opendir($path);
      5. if ($handle) {
      6. while (false !== ($file = readdir($handle))) {
      7. if ($file != "." && $file != "..") {
      8. $name = $path . "/" . $file;
      9. if (is_dir($name)) {
      10. $ar = read_files($name, $type);
      11. foreach ($ar as $value)
      12. {
      13. $result[] = $value;
      14. }
      15. } else {
      16. if(isset($types[pathinfo($file, PATHINFO_EXTENSION)])) $result[] = $name;
      17. }
      18. }
      19. }
      20. }
      21. closedir($handle);
      22. return $result;
      23. }
      24. $type = 'jpg,gif,png';
      25. $path = './images';
      26. $images = read_files($path, $type);
      27. $cnt = count($images);
      28. echo '<html>
      29. <head>
      30. <title>Test</title>
      31. <script language="javascript" type="text/javascript">
      32. function switchImg(drct) {
      33. nmb = parseInt(nmb) + parseInt(drct);
      34. if (nmb < 0) nmb = 0;
      35. if (nmb > cnt-1) nmb = parseInt(cnt)-1;
      36. document.images["view"].src = images[nmb];
      37. }
      38. </script>
      39. </head>
      40. <body>
      41. <div>
      42. <input id="prevBtn" type="button" value="previous" onClick="switchImg(\'-1\');"></input>
      43. <input id="nextBtn" type="button" value="next" onClick="switchImg(\'1\');"></input>
      44. <img src="'.$images[0].'" id="view" />
      45. </div>
      46. <script language="javascript" type="text/javascript">
      47. var nmb = 0;
      48. var cnt = \''.$cnt.'\';
      49. var images = new Array();';
      50. foreach ($images AS $id => $path) {
      51. echo "images[$id] = '$path';\n";
      52. }
      53. echo ' </script>
      54. </body>
      55. </html>';
      Alles anzeigen

      Die Änderung wird in diesen Zeilen (61 - 63) deutlich:

      Quellcode

      1. foreach ($images AS $id => $path) {
      2. echo "images[$id] = '$path';\n";
      3. }

      Hier schreibt das PHP Script den JavaScript Code, welcher dann beim Client das Array mit den Pfaden in JavaScript anlegt.
      Ansonsten verhält sich der obere Teil des Scripts gleich dem ersten Code von mir: Die rekursive Funktion liest den angegebenen Ordner und Unterordner nach Dateien mit den eingetragenen Dateiendungen aus.
    • wow, es läuft =D super!
      also ist json_encode nicht verfügbar, weils erst ab 5.2.0 unterstützt wird, richtig?

      mhh, die bilder werden aber jetzt völlig durcheinander angezeigt. wenn ichs richtig versteh, muss da jetzt noch sowas wie ein $result = desc; oder so hin.
      falls richtig, freirunde
    • ok, habs mit ner sortfunktion hinbekommen. gefällt mir soweit gannz gut und lass ich jetzt erst ma so. wenn ich zeit hab, versuch ich vielleicht n kleinen index oder so hinzumachen, sollte ja nicht all zu schwer sein.

      vielen dank von meiner seite aus, ramius =D *thumbsup*
      falls richtig, freirunde
    • Benutzer online 1

      1 Besucher