Flaggenwechsel

signo

Grünschnabel
Moin Moin !

Ich brauch sowas, wie man es by mymtw.de zum Beispiel bei der Flaggenauswahl sieht. Ich hab also ne Dropdown Liste und will je nachdem welchen Wert ich auswähle, das entsprechende Bild nebenan anzeigen.

Ich hab dazu folgendes gemacht:

PHP:
function changeCountry(imgid,countryid)
{
select_value = document.getElementByID(countryid).value;
path = 'templates/images/bilder/';
if (select_value) document.getElementById( imgid ).src = path + select_value + '.gif';
else document.getElementByID( imgid ).src = path + 'na.gif';
}

und im Dokument dann:

PHP:
<select name="country2" id="country2" class="formular_input" onchange="changeCountry(cimg2,country2)">
<option value="na" selected>Choose Country</option>
<option value="bild1">Bild 1</option>
<option value="bild2">Bild 2</option>
</select>
<img src="templates/images/bilder/standard.gif" name="cimg2" id="cimg2" alt=">

Also, das Startbild bekomm ich noch, aber solbald ich wechsel kommt nen Laufzeitfehler. Ich vermute es stimmt irgendwas mit der Variablenübergabe nicht, ich seh den Wald allerdings vor Bäumen nicht Wink.

Vielleicht kann ja jemand von Euch den fehler sehen

Danke
 
Hi,

zunächst einmal - JavaScript ist case-sensitive - damit sind getElementByID und getElementById
nicht das gleiche. Die zweite Variante ist die richtige.

Da es sich bei dir um eine Select-Gruppe handelt, musst du über seine Optionen und den gewählten
Index auf den aktuellen Wert zugreifen:
Code:
function changeCountry(imgid, countryid){
    select_value = document.getElementById(countryid).options[document.getElementById(countryid).selectedIndex].value;
    path = 'templates/images/bilder/';
    if (select_value)
        document.getElementById( imgid ).src = path + select_value + '.gif';
    else
        document.getElementById( imgid ).src = path + 'na.gif';
}
Beim Aufruf müssen die IDs als Strings übergeben werden und müssen deshalb in singlequotes
gesetzt werden.
HTML:
<select name="country2" id="country2" class="formular_input" onchange="changeCountry('cimg2', 'country2')">
    <option value="na" selected>Choose Country</option>
    <option value="bild1">Bild 1</option>
    <option value="bild2">Bild 2</option>
</select>
Ich hoffe, das hilft dir weiter.

Ciao
Quaese
 
Hi SilentWarrior,

zur Case-Sesitivität ist meine Information eine völlig andere.

So schreibt zum Beispiel Jürgen Wehling (Wissenschaftlicher Mitarbeiter der Universität
GH Essen) in seinem Dokument "Datenverarbeitung III - Internet und seine Dienste" auf
Seite 9:
"... Bleibt zu beachten: JavaScript ist case sensitive, ... "
-> Quelle

Das Hochschulrechenzentrum der Universität Dortmund schreibt in seiner Computer Postille
vom Dezember 2000:
"... JavaScript ist "case sensitive": d.h. Groß- und Kleinschreibung spielt eine wichtige Rolle ..."
-> Quelle

Weitere Quellen:
Uni Weimar, Susquehanna University (Office Of Information Technology)

Ciao
Quaese
 
Da muss ich ihm recht geben.
Man denke, es vermeidet auch lästiges und zeitaufwendiges suchen von Fehlern, wenn man von Anfang an auf Gross- Kleinschribung achtet. (ist bei mir auch schon mal vorgekommen)

es stimmt zwar, dass HTML das wurst ist, aber wer's auch in HTML schon beachtet, hats später bei anderen "Sprachen" leichter.

fazit: wer diesen Fehler mal begangen hat, weiss wiso.
und man muss ja nicht alle Fehler selber machen ;)

Gruss Don Quijote
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück