mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 09:07 Benutzername: Passwort: Auto-Login

Thema: JavaScript select/option switch ohne reload vom 12.01.2011


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> JavaScript select/option switch ohne reload
Autor Nachricht
Zim
Threadersteller

Dabei seit: 05.12.2006
Ort: Earth Rocks
Alter: -
Geschlecht: Männlich
Verfasst Mi 12.01.2011 18:50
Titel

JavaScript select/option switch ohne reload

Antworten mit Zitat Zum Seitenanfang

Hi,
seid so nett und helft mal kurz einem Javascript Legastheniker *bäh*

Code:

<select id="my_selections" >
<option value="get_selection" >bitte auswählen</option>
<option value="wert1">wert 1</option>
<option value="wert2">wert 2</option>

<div style="display:none;" id="div1" >inhalt</div>

<div style="display:none;" id="div2" >anderer inhalt</div>




Folgendes soll passieren:
wenn man optionsfeld 1 auswählt soll das div mit der ID »div1« eingeblendet werden beim 2. entsprechend das 2. div.
Ändert man die auswahl dann erscheint wieder das entsprechend andere div und das aktuelle verschwindet. Geht man nun wieder aud die option mit der value »get_selection« dann werden beiden divs wieder auf display:none gesetzt.

das ganze sollte allein über javascript laufen, kein ajax (der inhalt der divs ist gering und wird beim seitenaufruf komplett geladen) – es darf auch kein submit ausgelöst werden

Danke schon mal für eure Hilfe *zwinker*
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 12.01.2011 18:58
Titel

Antworten mit Zitat Zum Seitenanfang

Wenn du's ordentlich & generisch halten möchtest, musst Du das programmieren... in Javascript. Das kann man in 3 Zeilen nicht unbedingt direkt erklären. Vielleicht solltest Du Dir sprachunabhängig Gedanken über die generelle Vorgehensweise machen und das mal kurz aufzeichnen?
  View user's profile Private Nachricht senden
Anzeige
Anzeige
choise

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Mi 12.01.2011 20:01
Titel

Antworten mit Zitat Zum Seitenanfang

zb könntest du es so machen:
http://jsfiddle.net/pmhcD/
Code:
<select id="switch">
    <option>please select</option>
    <option>Div 1</option>
    <option>Div 2</option>
    <option>Div 3</option>
</select>

<div id="container">
    <div>Div 1</div>
    <div>Div 2</div>
    <div>Div 3</div>
</div>

Code:
// cache
var $container = $("#container");
var $switch = $("#switch");

// hide all
$("div",$container).hide();

// button action "select field"
$switch.change(function() {
    // index of switched option
    var theIndex = $switch.attr("selectedIndex");
    toggleContent(theIndex);
});

function toggleContent(theIndex) {
    $("div",$container).hide();
    $("div:nth-child("+theIndex+")").show();
}


das ist jetzt natürlich nur schnell hingetippt. ein paar überprüfungen hier und da, evtl das "bitte auswählen" speziell mit einem value versehen usw... aber so im prinzip läufts
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Zim
Threadersteller

Dabei seit: 05.12.2006
Ort: Earth Rocks
Alter: -
Geschlecht: Männlich
Verfasst Do 13.01.2011 01:35
Titel

Antworten mit Zitat Zum Seitenanfang

Das funktioniert Grins

vielen Dank


(auch wenn ich zu meiner Schande gestehen muss das ich absolut keine Ahnung habe warum das funktioniert so ganz ohne id´s in den options und den divs)
  View user's profile Private Nachricht senden
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Do 13.01.2011 10:42
Titel

Antworten mit Zitat Zum Seitenanfang

für den lerneffekt:

Code:
// cache
var $container = $("#container"); // das element mit der ID container in einer variable speichern
var $switch = $("#switch"); // das element mit der id switch in einer variable speichern

// hide all
$("div",$container).hide(); // alle divs innerhalb von #container verstecken

// button action "select field"
$switch.change(function() { // beim change event (also dem umschalten) der selectbox folgendes tun:
    // index of switched option
    var theIndex = $switch.attr("selectedIndex"); // den index der selektierten option (also ist nummer 1,2 oder 3 selektiert) herausfinden
    toggleContent(theIndex); // den index der option an die funktion toggleContent übergeben.
});

function toggleContent(theIndex) {
    $("div",$container).hide(); // alle divs innerhalb von #container verstecken (falls vorher welche eingeblendet wurden)
    $("div:nth-child("+theIndex+")",$container).show(); // das n-te div innerhalb von container einblenden. dabei wird als "n" die zahl genommen, die beim umschalten der selectbox an diese funktion übergeben wurde. wenn ich also option 3 auswähle, wird das dritte div im container eingeblendet.
}
  View user's profile Private Nachricht senden
choise

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Do 13.01.2011 10:42
Titel

Antworten mit Zitat Zum Seitenanfang

oha, dann sollten wir das allerdings noch klären!

c 'n' p wollen wir ja nich *zwinker*

was genau ist dir denn nicht klar?

// danke sahnemuh Lächel


Zuletzt bearbeitet von choise am Do 13.01.2011 10:43, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Zim
Threadersteller

Dabei seit: 05.12.2006
Ort: Earth Rocks
Alter: -
Geschlecht: Männlich
Verfasst Do 13.01.2011 16:28
Titel

Antworten mit Zitat Zum Seitenanfang

ok danke, nun sehe ich klarer Lächel

JavaScript ist für mich echt die Hölle. Dagegen kann ich c++ schon richtig gut *bäh*
  View user's profile Private Nachricht senden
 
Ähnliche Themen select-box option aktiviert select-box
HTML: <select> voreingestelltes <option> tag ?
Select Form mit individuellen Mails pro Option
Reihenfolge der Option-Werte in einer Select-Liste ändern
[javascript] mit <select> feld wert an javascript funk
Reload von DIV-Inhalt mit JavaScript?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.