• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Inhalt aus einem HTML-Form-Selectfeld nach JS transferieren ?

Vorstaedter

New member
Guten Tag und zunächst ein Gruß von einem Neuen hier.
Bin kein Profi und bastele hobbymäßig an meiner WEB-Seite. (Winfried Heinkele) Nun hab ich folgendes Problem :

Ich hab ein Selectfeld in einem HTML-Formular welches verschiedene geografische Regionen zur Auswahl anbietet. Trifft der Nutzer eine neue Auswahl, wird eine JS-Funktion aufgerufen.
Hier zunächst das Selectfeld :

<select name="region" class='selectbox' id="idregion" size="1" onchange="sichern_region()">

In der JS-Funktion - sichern_region() - wird zuerst der aktuelle Inhalt des Selectfeldes in eine JS globale Variable übertragen; dies geschieht mit folgender Zeile :

region = ("region", document.forms.formular_region.elements.region.value);
anschließend prüfe ich (testhalber) mit Alert den Inhalt von region.

Das funktioniert bestens, wenn der Inhalt des Selektfeldes aus nur einem Wort besteht, z.B. Hamburg. Habe ich aber 2 oder noch mehrere Wörter z.B. Hamburger Hafen, wird nur das erste Wort also Hamburger übernommen, der Hafen verschwindet.
Ich übe da schon seit Tagen rum, komm aber nicht weiter.
Würde mich freuen, wenn mir jemand sagt, wie es richtig sein muss.
Danke schonmal vorab sagt
Winfried
 
Also der Zugriff auf das <select> sieht irgendwie komisch aus. einfacher geht’s mit:
Code:
document.getElementById('idregion').value
 
Ich hab versucht, den Fehler weiter einzukreisen, komme aber immer wieder auf den im Eingangspost beschriebenen Fehlermechanismus zurück. Ich stell es hier der Übersichtlichkeit nochmal dar:

Step 1 : Formular mit einem Selectfeld, welches zunächst nur einen Option-Eintrag hat :

HTML:
<div id=box_region>
<form name="formular_region"> 
 <select name="region" id="idregion" class='selectbox' size="1" onchange="sichern_region()">
<option>-alle_Regionen</option>
</select>  
</form>
</div>

Step 2 : Durch ein Ereignis an anderer Stelle wird das Formular per Ajax ersetzt und enthält nun mehrere Option-Einträge, die aus einer Datenbank kommen. Hier das nun geänderte Formular so wie es im von Ajax abgefragten PHP-Skript steht :

PHP:
<form name="formular_region"> 
<select name="region" id="idregion" class='selectbox' size="1" onchange="sichern_region()">
<?php
  foreach ($wo2 as $region) {
   echo "<option value=$region>$region</option>";
  }
?>
</select>
</form>

Step 3 : Klicke ich nun einen Suchbegriff an, wird folgendes Javascript aufgerufen :

HTML:
function sichern_region () { 
			//region = ("region", document.forms.formular_region.elements.region.value);   //Version 1
			       // oder gemäß Vorschlag von Dormilich die nachstehende Version 
			region = document.getElementById('idregion').value                                        // Version 2
		alert ("sichern_region "+region);                                                      // alert nur zur Kontrolle
			document.getElementById('r').innerHTML = region;

                                  // hier folgt noch der Rest der Funktion, ist aber imho für das Problem ohne Relevanz
			ort_abfragen(region);
			//zurücksetzen von ort auf "-alle_Orte" 
			document.getElementById("o").innerHTML = "-alle_Orte"; region = "-alle_Orte"
			satzzahl_abfragen();
			}

Die Versionen mit den unterschiedlichen ersten Zeilen in der Funktion funktionieren gleichwertig

Das Problem :
Wir aus der Datenbank ein Suchbegriff, z.B. - River_Deben - ( 1 Wort) ausgelesen, funktioniert alles weitere wie erwartet und gewollt. Zur Kontrolle wird mit Alert dann auch - River_Deben - ausgegeben.

Den _ verwende ich nur weil es ohne diesen nicht funktioniert, der stört aber den Lesefluss und soll eigentlich nicht sein.

Lese ich aus der Datenbank aber - River Deben - aus, (2 Worte ) wird im anschließenden alert nur -River - ausgegeben obwohl im Selektfeld ordnungsgemäß - River Deben - steht.
Frage ist also, warum das JS-Script aus dem Selektfeld des Formulars nur ein Wort korrekt ausliest.

Ein funktionierende Version der Datenbank ( mit _ ) kann zum Verständnis hier angesehen werden :

Auswahl :
 
Zuletzt bearbeitet von einem Moderator:
Hallo tsseh,
Irgendwie stehe ich fest auf der Leitung; hilfst Du mir bitte runter ?

Ich nehme an, Du meinst die beiden Zeilen (alternativ, nicht beide)

region = ("region", document.forms.formular_region.elements.region.value);

bzw.

region = document.getElementById('idregion').value;

In beiden Zeilen kommt nach dem value kein = mit nochwas danach, was in "" gesetzt werden kann.
Bist Du so freundlich und schreibst mal konkret, was da hin sollte ?
Großen Dank vorab !!
 
Zuletzt bearbeitet von einem Moderator:
Hallo tsseh,
genau das wars.
Herzlichen Dank für die Hilfe !
Mit den " und ' in JS und PHP werde ich wohl keine Freundschaft mehr schließen .... :)
 
Zurück
Oben