Eine Frage zu Javascript...

Bash, Shell, PHP, Python, Perl, CGI
Anonymous

Eine Frage zu Javascript...

Post 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
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: Eine Frage zu Javascript...

Post 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.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Anonymous

...

Post 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
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: ...

Post 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
Anonymous

...

Post 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
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: Eine Frage zu Javascript...

Post 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
Anonymous

...

Post 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
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: Eine Frage zu Javascript...

Post 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
Anonymous

...

Post by Anonymous »

Vielen Dank,

mach ich gleich sofort!

Schönes Wochenende noch;
Astrid
Anonymous

...

Post 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
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: Eine Frage zu Javascript...

Post 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
Anonymous

...

Post by Anonymous »

Hi,

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

Vielen Dank nochmal;
Astrid