Page 1 of 1

Eine Frage zu Javascript...

Posted: 2003-11-22 12:22
by Anonymous
Hi und Hallo,

ich haba folgendes Script, in dem zwei Werte wichtig sind:

Anzahl der Bilder und Bildname.

Wie kann ich jetzt diese beiden werte über einen Link übergeben?

Beispiel: <a href="javascript:bild(bildname,anzahl)">Bilder</a>

Ich möchte halt nur ein Bilderscript haben und nicht für jede Art eines.

Hier mal das Script:

<script language="javascript">
<!--
var num = 8; <- Soll übergeben werden
function bild(i) {
if (document.images){
img = new Array();
if (b > num) b = 1;
img=new Image();
img.src="bildname"+i+".jpg"; <- "bildname" soll übergeben werden
document.images.bild.src=img.src;
}
}
// -->
</script>

Vielen Dank!

Schönen Tag wünsche ich noch;
Astrid

Re: Eine Frage zu Javascript...

Posted: 2003-11-22 14:09
by majortermi
Verstehe ich das richtig:
Du willst, ein zentrales JavaScript haben, das von verschiedenen Seiten, mit verschiedenen Bildern eingesetzt wird?

Da gibt es im Prinzip zwei Möglichkeiten:
Entweder du definierst in jeder Seite, in die du das Script einbindest, entsprechende globale Variablen, oder du erzeugst das JavaScript dynamisch per PHP.

Letzteres könnte z.B: so aussehen:
javascript.php

Code: Select all

<?php header("Content-Type: application/x-javascript"); ?>
function bild(i) {
var num = <?php echo $_GET['num']; ?>;
var bildname = "<?php echo $_GET['bildname']; ?>;
if (document.images){
img = new Array();
if (b > num) b = 1;
img[i]=new Image();
img[i].src="bildname"+i+".jpg"; <- "bildname" soll übergeben werden
document.images.bild.src=img[i].src; 
}
}
Ins HTML kannst du dass dann mit Hilfe von

Code: Select all

<script src="javascript.php?num=17&bildname=prefix_der_datei" type="text/javascript">
einbinden.

Das oben war natürlich nur ein Beispiel, das noch ein bisschen angepasst werden muss, um CSS-Angriffen standzuhalten.

...

Posted: 2003-11-22 14:49
by Anonymous
Hi,

vielen Dank für deine Antwort.

Leider unterstützt der Server kein PHP :cry:

Mit PHP wäre das ja kein Problem, aber mit Javascript...

Genau, ich möchte ein zentrales "Bild-Script"haben, dass ich ja auch schon gepostet habe.

Dafür müssen ja nur zwei Werte übergeben werden:

Die Anzahl der Bilder
Der Bildname

Nun ist halt die Frage, wie ich das mit Javascript übergeben kann, so dass das oben gepostete Script damit arbeiten kann.

Vielleicht gibt es ja eine Lösung :wink:

Beste Grüße;
Astrid

Re: ...

Posted: 2003-11-22 15:37
by wgot
Hallo,
astrid2 wrote:Leider unterstützt der Server kein PHP
was is denn das für eine Kiste? :(

Dann installier halt PHP. Ist ohnehin sinnvoller als der JS-Murks der allerspätestens dann nicht mehr geht, wenn ein Besucher ohne JS daherkommt.

So wie das Script jetzt ist, kann es nicht funktionieren, oder hast Du falsch abgetippt?

Wenn Du Werte an die Funktion übergeben willst:

function bild(bildname,num,i)
{
......
img.src=bildname+i+".jpg"
......
}

Wär glaub ich sinnvoll, wenn Du genau erklärst, was das Script machen soll (und solange schonmal PHP installierst).

Gruß, Wolfgang

...

Posted: 2003-11-22 16:07
by Anonymous
Hi,

so einfach ist das leider nicht.

Der Server auf dem das liegt gehört nicht mir und daher kann ich da keinen falls machen, was ich möchte.

Ich gebe dir natürlich Recht, ich würde sowas auch nie mit JS machen, aber man muss mit dem leben, was man gegeben hat :lol:

Also nochmal eine kleine Beschreibung:

Das Script an sich sollte so eigentlich funktionieren:

Code: Select all

 <SCRIPT language=Javascript>
<!--

var num = 4; // Anzahl der Bilder
function more(i) {
if (document.images){
img = new Array();
if (n > num) n = 1;
img[i]=new Image();
img[i].src="pic"+i+".gif";  // pic ist der Name der Grafiken
document.images.slides.src=img[i].src;
        }
    }
// -->
</SCRIPT>
Die zwei beschriebenen Werte müssen nun noch irgendwie übergeben werden. So kann ich mit einem Script dann alle Bilder aufrufen, die ich haben möchte.

Die Anzahl der Bilder gibt an, wie viele Bilder es von dem Bildnamen gibt.
Alles andere geht dann eigentlich von selber.

Beispiel:

bilder.html?anzahl=5&art=bild

So würden hinterher 5 Bilder angezeigt:

bild1.jpg, bild2.jpg, bild3.jpg, bild4.jpg, bild5.jpg

Wäre klasse, wenn das irgendwie möglich wäre, am besten so einfach wie möglich.

Kann ich denn die werte nicht einfach in einem javascript-Link übergeben?

Wie egsagt, viel Ahnung habe ich nicht von JavaScript.

Vielen Dank;
Astrid

Re: Eine Frage zu Javascript...

Posted: 2003-11-22 18:21
by wgot
Hallo,
bilder.html?anzahl=5&art=bild
ich glaub, ich hab jetzt verstanden, was Du willst.

Code: Select all

<script language="javascript"> 
var s=window.location.search
var p=s.indexOf('=')
s=s.substr(p+1)
p=s.indexOf('%26')
x1=s.substr(0,p)
p=s.indexOf('=')
x2=s.substr(p+1)
alert(x1)
alert(x2)
</script> 
x1 ist der erste übergebene Wert, x2 der zweite. Die Namen der übergebenen Werte werden nicht beachtet.

Gruß, Wolfgang

...

Posted: 2003-11-22 20:48
by Anonymous
Hi,

das hört sich ja alles schon sehr gut an.

Leider kriege ich es immer noch nicht hin.
Es schent so, als wenn der erste Wert nicht übergeben wird! Er wird auch nicht "alertet".

Ist heute nicht mein Tag :lol:

Schönen Abend noch;
Astrid

Re: Eine Frage zu Javascript...

Posted: 2003-11-22 22:28
by wgot
Hallo,

war mein Fehler, ist etwas browserabhängig und ich hatte nur mit IE6 ausprobiert. Jetzt funktioniert's auch mit Opera7 und Netscape4.7. Andere bitte möglichst auch noch ausprobieren.

Code: Select all

<script language="javascript"> 
var s=window.location.search
var p=s.indexOf('=')
s=s.substr(p+1)
p=s.indexOf('%26')
  if (p!=-1) { s=s.substr(0,p)+'&'+s.substr(p+3) }
p=s.indexOf('&')
x1=s.substr(0,p)
p=s.indexOf('=')
x2=s.substr(p+1)
alert(x1)
alert(x2)
</script> 
Gruß, Wolfgang

...

Posted: 2003-11-22 22:32
by Anonymous
Vielen Dank,

mach ich gleich sofort!

Schönes Wochenende noch;
Astrid

...

Posted: 2003-11-22 22:42
by Anonymous
Hi,

klappt leider immer noch nicht :cry: :cry: :cry:

Hier nun mal das Script:

Code: Select all

<script language="javascript">
var s=window.location.search
var p=s.indexOf('=')
s=s.substr(p+1)
p=s.indexOf('%26')
  if (p!=-1) { s=s.substr(0,p)+'&'+s.substr(p+3) }
p=s.indexOf('&')
x1=s.substr(0,p)
p=s.indexOf('=')
x2=s.substr(p+1)
alert(x1)
alert(x2)
</script>

<script type="text/javascript">
anzahl=+x1
bildnamen=+x2
start=1
function bild(richtung)
{
if(start+richtung<1)
start=anzahl
else if(start+richtung>anzahl)
start=1
else
start+=richtung
document.bild.src=bildnamen+start+".jpg"
}
</script>
Es wird immer NaN.jpg angezeigt, ich weiß nicht, was falsch ist :(

Gruß;
Astrid

Re: Eine Frage zu Javascript...

Posted: 2003-11-22 23:12
by wgot
Hallo,
anzahl=+x1
bildnamen=+x2
mit dem + unterstellst Du, daß x1 und x2 Zahlen sind. Bildnamen ist aber eine Zeichenkette. Er versucht dann, z.B. 0+'abc' zu rechnen und stellt dabei fest, daß 'abc' "not a number" ist.

Einfach die beiden + weglassen.

Gruß, Wolfgang

...

Posted: 2003-11-22 23:19
by Anonymous
Hi,

na endlich, jetzt klappt es und ich habe wieder viel dazu gelernt!

Vielen Dank nochmal;
Astrid