HTML zwei Select ohne Reload ?

Hallo zusammen!

Ich hoffe ihre könnt mir helfen. Ich habe 2 Select „Anweisungen“ mit Size 1. In der 1.Select sind Länder „Deutschland, Österreich, USA,…“ aufgelistet. in der 2. Select die auch Size 1 ist, steht bevor man ein Land ausgewählt hat „---------“.

Sobald ein Land ausgewählt wurde soll es unter anderem mit onchange im 2. select ca 20 Städtenamen ausgeben bzw soll mit 20 Städtenamen befühlt werden damit man eine Stadt auswählen kann. und das ohne Reload des formular. ist das möglich?

hi,

html allein kann das nicht.
javascript und „onchange“ wird’s tun.
genauen code musst du dir raussuchen, hab ich auch nicht so drauf…

mac.

Hallo, kannst du mir mal Deinen kompletten Code rüberschicken, dann mache ich Dir das. Das geht mit einer Javascript-Anweisung, d.h. wenn eine OnChange ausgeführt wird soll sich die zweite Select Anweisung dann füllen :wink:
Gruß jens

<?php WHILE ($adurchlauf <= 88){ ?><?php echo $welt_land[$durchlauf];?><?php $durchlauf++; } ?>stadt 1stadt 2stadt 3

wie gesagt, sollte sich jetzt die 2.select mit den städtenamen füllen. da würde ich auch eine schleife verwenden. oder ist eine schleife eine benchbremse?

danke!

Ich schaue es mir nachher an, bin jetzt mal unterwegs, melde mich dann wieder! Ich glaube das Ganze geht noch eleganter :smile:

Sorry, da kann ich dir nicht weiterhelfen. Mit Formularen befasse ich mich aus Sicherheitsgründen nicht weiter. Versuch es mal bei SelfHtml, da kann man Arrays vordefinieren, in einer wählen und in der zweiten wird die passende Auswahl angezeigt. Wenn man dann klickt beginnnt der Reload. Da wirst du bestimmt fündig.

Liebe Grüße
Lo

Ich schaue es mir nachher an, bin jetzt mal unterwegs, melde
mich dann wieder! Ich glaube das Ganze geht noch eleganter :smile:

geht in ordnung. im zweiten select habe ich folgendes array! stadt[$auswahl,1 bis 20]; und dachte dies auch mit einer schleife zu befühlen.

mfg

Eine Änderung ohne Reload hinzubekommen, dazu benötigt man Javascript, oder eine Flash-Animation.

Nur habe ich recht wenig Javascript verwendet, so dass ich dir da recht wenig helfen kann. Aber ich möchte dir zumindest mal einen Ansatz liefern.

Suchwörter: javascript dropdown onchange

Die Funktion die man braucht:

Beispiele:

http://tycoontalk.freelancer.com/javascript-forum/52…

http://javascript.about.com/library/bl3drop.htm

http://javascript.about.com/library/bldydrop1.htm

Ich hoffe du findest hier einen Ansatz, mit dem du weiterarbeiten kannst.

Gruß Mjchael

kann man array folgendermassen erstellen z.b in PHP

$welt = array(„Deutschland“,10);
$welt[„Deutschland“][1] = „Berlin“;
$welt[„Deutschland“][2] = „Hamburg“;
…usw…

die frage ist deswegen. weil ich in einer HTML select auswahlt den VALUE z.b statt mit Zahlen mit „Berlin“ usw…erstelle.

den wert bekomme ich von der 1.html select auswahl z.b Deutschland und möchte dann in der 2.select auwahl mit javascript füllen

die syntax in php ist eine andere als in javascript oder html. bei selfphp ist das sehr schön beschrieben und in javascribt kann ich dir leider nicht helfen.
es ist harte arbeit sich so eine struktur auszudenken, immer wieder probieren und schauen was passiert.

Schau doch wie solche abfragen im netz aussehen. mit der rechten maustaste den quellcode abfragen, das bringt einen meist auf eine idee.

liebe grüße
lo

Das Ganze geht nur mit Javascript wegen dem Neuladen der Seite und das muss Client seitig passieren!

var an = navigator.appName;
var av = navigator.appVersion;
var mv = av.substring(0, 1);
var navType=0;
if ( (an == „Netscape“) && ( mv >= 3 ) ) navType=2;
if ( (an == „Microsoft Internet Explorer“) && (mv >= 4) ) navType=1;

var stadt = new Array();

stadt[‚Deutschland‘] = new Array();
stadt[‚Deutschland‘][0] = ‚Berlin‘;
stadt[‚Deutschland‘][1] = ‚Bremen‘;
stadt[‚Deutschland‘][2] = ‚Dortmund‘;
stadt[‚Deutschland‘][3] = ‚Hamburg‘;
stadt[‚Deutschland‘][4] = ‚Kiel‘;
stadt[‚Deutschland‘][5] = ‚Köln‘;
stadt[‚Deutschland‘][6] = ‚München‘;
stadt[‚Deutschland‘][7] = ‚Saarbrücken‘;

stadt[‚England‘] = new Array();
stadt[‚England‘][0] = ‚Birmingham‘;
stadt[‚England‘][1] = ‚Liverpool‘;
stadt[‚England‘][2] = ‚London‘;
stadt[‚England‘][3] = ‚Manchester‘;

stadt[‚Frankreich‘] = new Array();
stadt[‚Frankreich‘][0] = ‚Bordeaux‘;
stadt[‚Frankreich‘][1] = ‚Lyon‘;
stadt[‚Frankreich‘][2] = ‚Marseilles‘;
stadt[‚Frankreich‘][3] = ‚Paris‘;

stadt[‚Italien‘] = new Array();
stadt[‚Italien‘][0] = ‚Mailand‘;
stadt[‚Italien‘][1] = ‚Neapel‘;
stadt[‚Italien‘][2] = ‚Rom‘;
stadt[‚Italien‘][3] = ‚Turin‘;

function wechsel_land(land) {

// Alte Liste löschen:
document.getElementById(„stadt“).length = 0;
if (document.getElementById(„land“).selectedIndex == 0){
}else{
var items = stadt[land].length;
}
var i;
// Neue Liste erstellen:
for (i=0; i<items; i++) {
document.getElementById(„stadt“).options[i] = new Option(stadt[land][i]);
}
document.getElementById(„stadt“).selectedIndex = 0;
}

Bitte wählen! Deutschland England Frankreich Italien

versuchs mal damit!

Gruß

Hallo max12neu,

tut mir leid, aber das kann ich dir nicht beantworten. Ich hoffe, dass jemand anderes hier dir dabei weiterhelfen kann.

Viele Grüße und viel Erfolg,
cruisi

hallo jenst!

vielen danke für die große mühe!

das heist ich muss die array in javascript schreiben? kann ich auch eine „include datei“ verwenden wo die array geschrieben sind?

ich hab vorher ohne getelementbyid gemacht! wo ist der unterschied?

document.land.stadt.options[1] = new options(document.land.stadt.value, document.land.stadt.value, false, true);

wobei im 2.select dann das land geschrieben wurde. da ich noch keine schleife eingebaut habe bzw jetzt die array in javascript array umschreiben musste.

und wenn ich ein 3.select dazu baue für restaurants muss ich eine weiter onchange verwenden und stadt muss ausgewählt sein.

wenn ich es hinbekommen habe, melde ich mich wieder.

hab noch was vergessen. ich verstehe nicht warum name=stadt und id=stadt? dein programm funktioniert super. aber es wird verlangt, as active x nicht blokiert werden. geht das auch ohne?

und wenn ich jetzt aus der 2.select eine stadt ausgewählt habe. und aus einer 3.select ein restaurant auswählen will, funktioniert das genauso mit onchange?

danke

habs jetzt an meinem projekt angewendet. doch komme ich durcheinander. z.b mit stadt, da für select namen, select id und variable verwendet wird.

beim auswählen wird nichts befüllt.

versuchs mal damit:

var an = navigator.appName;
var av = navigator.appVersion;
var mv = av.substring(0, 1);
var navType=0;
if ( (an == „Netscape“) && ( mv >= 3 ) ) navType=2;
if ( (an == „Microsoft Internet Explorer“) && (mv >= 4) ) navType=1;

var stadt = new Array();

stadt[‚Deutschland‘] = new Array();
stadt[‚Deutschland‘][0] = ‚Berlin‘;
stadt[‚Deutschland‘][1] = ‚Bremen‘;
stadt[‚Deutschland‘][2] = ‚Dortmund‘;
stadt[‚Deutschland‘][3] = ‚Hamburg‘;
stadt[‚Deutschland‘][4] = ‚Kiel‘;
stadt[‚Deutschland‘][5] = ‚Köln‘;
stadt[‚Deutschland‘][6] = ‚München‘;
stadt[‚Deutschland‘][7] = ‚Saarbrücken‘;

stadt[‚England‘] = new Array();
stadt[‚England‘][0] = ‚Birmingham‘;
stadt[‚England‘][1] = ‚Liverpool‘;
stadt[‚England‘][2] = ‚London‘;
stadt[‚England‘][3] = ‚Manchester‘;

stadt[‚Frankreich‘] = new Array();
stadt[‚Frankreich‘][0] = ‚Bordeaux‘;
stadt[‚Frankreich‘][1] = ‚Lyon‘;
stadt[‚Frankreich‘][2] = ‚Marseilles‘;
stadt[‚Frankreich‘][3] = ‚Paris‘;

stadt[‚Italien‘] = new Array();
stadt[‚Italien‘][0] = ‚Mailand‘;
stadt[‚Italien‘][1] = ‚Neapel‘;
stadt[‚Italien‘][2] = ‚Rom‘;
stadt[‚Italien‘][3] = ‚Turin‘;

var restaurant = new Array();

restaurant[‚Berlin‘] = new Array();
restaurant[‚Berlin‘][0] = ‚Burghotel‘;
restaurant[‚Berlin‘][1] = ‚Hilton‘;
restaurant[‚Berlin‘][2] = ‚Bergschänke‘;

restaurant[‚Bremen‘] = new Array();
restaurant[‚Bremen‘][0] = ‚Weserhaus‘;
restaurant[‚Bremen‘][1] = ‚Alt-Bremen‘;
restaurant[‚Bremen‘][2] = ‚Gutshof‘;

function wechsel_land(land) {
// Alte Liste löschen:
document.getElementById(„stadt“).length = 0;
document.getElementById(„restaurant“).length = 0;
if (document.getElementById(„land“).selectedIndex == 0){
}else{
var items = stadt[land].length;
}
var i;
// Neue Liste erstellen:
for (i=0; i<items; i++) {
document.getElementById(„stadt“).options[i] = new Option(stadt[land][i]);
}
document.getElementById(„stadt“).selectedIndex = 0;
}

function wechsel_stadt(stadt) {
// Alte Liste löschen:
document.getElementById(„restaurant“).length = 0;
if (document.getElementById(„land“).selectedIndex == 0){
}else{
var items = restaurant[stadt].length;
}
var i;
// Neue Liste erstellen:
for (i=0; i<items; i++) {
document.getElementById(„restaurant“).options[i] = new Option(restaurant[stadt][i]);
}
document.getElementById(„restaurant“).selectedIndex = 0;
}

Bitte wählen! Deutschland England Frankreich Italien

kannst mich auch anschreiben unter [email protected] und mir deinen Quelltext dann schicken! Das beim Internet Explorer die meldung kommt ist klar, da es sich ja um ein Script handelt! Nur mal so zur Info, hast du auch eine Datenbank?

kann ich auch bei id=„restaurantID“ verwenden. und bei select name=„SLTrestaurant“

beim „document.getElementById(„stadt“).length = 0;“ die variable stadt. ist das jetzt der definierte array? select name oder select id?

hab eine mysql datenbank die ich zur infoausgabe bzw ändern von unternehmerdaten speichern soll.

es gibt ja webseiten wo javascript nicht blockiert wird obwohl man mehrere select boxen hat. oder ist das dann zu kompliziert.

und nochmals danke!!!

Hi

entschuldige bitte die späte Antwort - ich hatte die letzten Wochen Probleme mit meinen ISP

mit deinen Informationen kann ich leider wenig anfangen. Wenn du die Lösung noch nit hast, dann schick mir doch bitte deinen Quelltext. Dann kann ich mal drüber gucken. Aber geht nichtm bringt mir leider herzlich wenig…

Oder magst du generell wissen wie das geht?

Ich kann dir gerne was JSF und JS angeht weiter helfen aber wenn du Informationen per PHP nachladen willst, kann ich dir bspw nicht helfen.

Ich brauch einfach mehr Informationen…

Mit freundlichen Grüßen

Hi,
AJAX könnte da weiter helfen.
Viel Erfolg!
J.H.