<select> - onchange Ereigniss?
Sven
- html
Hallo,
ich weis, der Titel ist doof, aber mir ist nix besseres im moment eingefallen. Habe ein Problem:
Ich habe eine "ComboBox" - "Auswahlliste" erstellt. Jetzt möchte ich gerne, dass wenn man was ausgewählt hat, dass er zu eine Seite wechelt. Wie bekomme ich das hin? Muss ich Javascript verwenden? Wenn ja, wie schreibe ich eine Prozedure, die zu einer Seite "Link" wechelt? Komme soweit mit Javascript eigendlich klar, aber ich weis nicht wie man zu einer Seite wechelt. Javascript verwende ich eigendlich nicht gerne, also wenns ohne geht, um so besser :)
MFG
Sven!
Hallo Sven,
Im fall, das dein Server Php unterstütz oder das du Apache verfendest könntest du es wie folgt gestalten:
<html>
<body>
<form name="senden" action="Dokumentname.php" method="post"> (für Dokumentname muss halt der Name des Dokuments eingesetzt werden^^)
<select size="1" name="Auswahl" onChange="Go(this)" width="250">
<option value="0" selected="selected">[ bitte auswählen! ]</option>
<option value="1">Link 1</option>
<option value="2">Link 2</option>
<option value="3">Link 3</option>
</select>
<input type="submit"></form>
</body>
</html>
<---Die datei untensthend bitte unter den Namen abspeichern den du oben anstatt Dokumentenname genommen hast.--->
<html>
<body>
<?php
if(isset($Auswahl))
{
switch($Auswahl)
{
case 1:
header("Location: http://www.example.com/1");//link 1
break;
case 2:
header("Location: http://www.example.com/2");//link 2
break;
case 3:
header("Location: http://www.example.com/3");//link 3
break;
default:
echo "Du Musst einen Link ausw$auml;hlen!";
break;
}
}
?>
</body>
</html>
Wie ich oben schon beschreiben habe, der Server muss über Php verfügen. Ich würde an deiner stelle aber eine Javascript lösung wählen, da diese wesentlich einfacher zu implimentieren ist und nicht einen Server mit php, sowie ein verständnis dieser sprache erfordert. Ich beschäftige mich aber nicht besonderst mit JS, in sovern kann ich dir dort nicht weiterhelfen
Hi, Jan!
Danke für deine Antwort. Ja, mein Server unterstützt PHP (Meine ganze Website die ich mache besteht aus PHP mit Forum etc.). Dann muss ich wohl noch auf andere Antworten abwarten. Weil über ein Formular schicken wollte ich es nicht so gerne zu aufwendig für sowas :). Gibt bestimmt auch ein Befehl für onchange wo man es direkt verlinken kann. <select onchange='location: http://www.wasauchimmer.de'> sowas in der art.
MFG
Sven!
Hallo,
Gibt bestimmt auch ein Befehl für onchange wo man es direkt verlinken kann. <select onchange='location: http://www.wasauchimmer.de'> sowas in der art.
Fast! <select onchange="window.location.href = 'http://www.wasauchimmer.de'">
Schöne Grüße Axel
Hi!
<select onchange="window.location.href = 'http://www.wasauchimmer.de'">
So hast du aber nur eine Zieladresse - ich habe das folgendermassen gelöst:
<form name="form1" action="http://www.sparkasseiserlohn.de/route.php" method="post" target="_top">
<select name="select1" class="sx" size="1" onchange="surfto1(this.form);">
<option selected value="0">Schnelleinstieg ...</option>
<option value="0">------------------------</option>
<option value="http://www.sparkasse-iserlohn.de/privatkunden/homebanking/index.htm">Homebanking</option>
<!--weitere options zur besseren Übersicht gelöscht-->
<option value="http://www.netviewer.de/515">NetViewer</option>
</select>
<noscript>
<input type="image" src="./images/suchen.gif" alt="zur Seite wechseln" title="zur Seite wechseln">
</noscript>
</form>
die Funktion surfto sieht folgendermassen aus:
function surfto1(formid) {
var myindex=formid.select1.selectedIndex;
if ((formid.select1.options[myindex].value !="0")&&(formid.select1.options[myindex].value!="http://www.netviewer.de/515")){
top.location.href=formid.select1.options[myindex].value;
}
else if (formid.select1.options[myindex].value!="0"){
pop1=window.open(formid.select1.options[myindex].value, "popp");
pop1.focus();
}
}
Hier wird unterschieden, ob ene externe Seite aufgerufen wird (in einem neuen Fenster) oder eine interne (im selben Fenster).
Die route.php:
<?php
header("Location: " . $_POST["select1"]);
exit;
?>
Diese wird nur gebraucht, wenn Javascript deaktiviert ist. DAnn ist auch der Absendeknopf ausgeblendet.
Gruß aus Iserlohn
Martin