2.1k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallö.

Ich habe ein kleines Problem. Es sieht folgendermaßen aus:
Auf einer Homepage habe ich einen kleinen Kasten in welchem ein
Bild erscheint zu jeder Kategorie ein anderes (manchmal auch
mehr).
Sollten dann zu der jeweiligen Kategorie mehr als 1 Bild vorhanden
sein erscheinen Links und Rechts Pfeile auf welche man klicken
kann um die Bilder zu wechseln (Die Bilder sind als Hintergrund in
der Tabelle.

Mein Script zum welchen sieht folgendermaßen aus:


function SwapImage(imgNum) {

document.getElementById("myImage").style.backgroundImage =
"url('imgNum')";

}


So nun zum eigentlichen Problem. Ich kenne mich nicht wirklich gut
aus in Javascript, aber in PHP würde ich dann einfach die Anzahl der
Bilder zählen und den String auseinandernehmen und die Zahl +1
an den Namen dran hängen, so dass halt das nächste Bild
erscheint..sollte dann das letzte Bild erreicht sein, also die Zahl am
Ende der Bilddatei größer als die gezählte Anzahl der Bilder, dann
soll er beim Ersten Bild anfangen.
Ich habe schon einiges rumprobiert, aber bisher keine wirkliche
Lösung gefunden, da ich PHP und Java hierbei irgendwie vereinen
müsste,

Ich bin für alle Vorschläge dankbar. Sollte das Problem nicht klar
genug sein, bitte einfach kurz fragen.

Danke!

9 Antworten

0 Punkte
Beantwortet von
Mein Script zum welchen
funktioniert so nicht! Oder gibt's wirklich eine Datei namens 'imgNum'? Und welcher Browser interpretiert die als Bild?

Zum anderen Problem:
JavaScript kann keine Verzeichnisse auslesen! Du musst die zulässigen Dateinamen im Skript hinterlegen.
Wenn du PHP zur Verfügung hast kannst du das damit erledigen lassen, indem PHP das Skript oder zumindest einen Teil davon schreibt.
0 Punkte
Beantwortet von
Hallo,

imgNum wird als Argument der Funktion übergeben wenn man auf
einen der Pfeile klickt - da ist der Bildpfad enthalten - geht also schon.
Mein eigentliches Problem ist (da durch das Javascript die Seite nicht
neu geladen wird) - die Erhöhung der Variable für das nächste Bild.
Hast du vielleicht dafür eine Idee?

Achja die Pfade des Bildes der jeweligen Kategorie wird durch eine if
Schleife festgelegt mit GET.

Danke schonmal
0 Punkte
Beantwortet von
geht also schon
nee, kann gar nicht, da sind zuviele Anführungszeichen und keinerlei Stringverbinder!

Achja die Pfade des Bildes der jeweligen Kategorie wird durch eine if Schleife festgelegt mit GET.
und was sagt mir das?

Bitte beschreibe dein Problem so ausführlich wie möglich, dazu gehört (Original-)Quelltext!
0 Punkte
Beantwortet von
Okay,

dass mit den Anführungszeichen kann eventuell sein - aber hatte es
getestet mit einem "einfachen" Bilderwechsel und dort ging es.
Wie gesagt dort liegt auch nicht mein Problem.

Es sieht wie folgt aus:

Link wird angeklickt (index.php?link=info) dort erscheint dann ein
Bild in einem Kasten (als Hintergrund einer Spalte) -
Codeausschnitt hierfür:


if ( $_GET["link"] == "info")
{
$imagec3 = "Bilder/info/info.jpg";
}


Hier dann der Code für den Pfeil:


onClick=\"SwapImage('$imagec3');


So jetzt wird ja der Link des jeweligen Bildes, welches zur Kategorie
passt, zur Funktion gesandt und dann auch angezeigt.
Mein Problem ist jetzt, dass durch die Javascript Funktion die Seite
nicht neu geladen wird und ich dadurch keine Möglichkeit habe
einfach eine Variable hochzählen zu lassen um dann in der Variable
das nächste Bild zu speichern.
Gibt es denn eine Möglichkeit eine PHP Funktion in einer Javascript
Funktion aufzurufen?

Danke
0 Punkte
Beantwortet von
Gibt es denn eine Möglichkeit eine PHP Funktion in einer Javascript Funktion aufzurufen?
Nein! PHP wird auf dem Server ausgeführt, JavaScript im Browser. Dazwischen liegen etliche km Kabel und ein (für Computer) riesiger zeitlicher Abstand.
0 Punkte
Beantwortet von
Ja sowas dacht ich mir schon.
Fällt dir/ euch sonst noch was ein, womit ich das verwirklichen
kann..was ich eigentlich verhindern möchte ist ein include, darum das
Javascript.
0 Punkte
Beantwortet von
Fällt dir/ euch sonst noch was ein, womit ich das verwirklichen kann
könntest du mal das Ganze etwas ausführlicher erläutern. Deine Infofetzchen reichen nicht!
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Ich glaube es verstanden zu haben. Nun - in JavaScript ist das alles möglich, was du willst. Du musst nur umdenken.

Durch PHP lässt du einfach folgenden Code im JavaScript-Bereich ausgeben:
$aBilder= array( 'bild1.jpg', 'bild2.gif', 'drei.png' );
echo '
var aBilder= new Array( \''. implode( '\', \'', $aBilder ). '\' );
var iNow= 0;
function SwapImage( bForward ) {
if( bForward ) {
iNow++;
if( iNow== aBilder.length ) iNow= 0;
} else {
iNow--;
if( iNow== -1 ) iNow= aBilder.length- 1;
}
document.getElementById( \'myImage\' ).style.backgroundImage=
\'url( \'+ aBilder[iNow]+ \' )\';
}';


Und später verwendest du deine JavaScript-Funktion entsprechend - mit true wird zum nächsten Bild gewechselt, mit false zum vorherigen:
echo 'onClick=\'SwapImage( true );';


(ungetestet)
0 Punkte
Beantwortet von
Hallo,

das war genau das wonach ich gesucht habe.
Vielen Dank euch beiden für die Anregungen und die Hilfe.
Klasse!!

Bis dann
...