Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Input type radio - bei klick auswahl begrenzen

Frage Entwicklung JavaScript

Mitglied: 65999

65999 (Level 1)

07.04.2009, aktualisiert 09.11.2016, 4359 Aufrufe, 4 Kommentare

Hi.

Ich suche nach folgender Lösung/Möglichkeit:

Ich habe in meiner html datei, 1x 4 und 1x 3 input felder mit dem type radio. Nun möchte ich die auswahl in den 3 input felder begrenzen, nachdem der anweder in den ersten 4 feldern eine eingabe gemacht hat.


input 1: IT
input 2: Produktion
input 3: Vertrieb
input 4: Verwaltung

input 1: Ort 1
input 2: Ort 2
input 3: Ort 3


Da es it nur in ort 1 gibt, soll der anweder nicht ort 2 und ort 3 angezeigt bekommen

wie kann man das machen? danke für eure hilfe
Mitglied: dog
07.04.2009 um 22:49 Uhr
da es die it nur in ort 1 gibt, soll der anweder nicht ort 2 und ort 3 angezeigt bekommen

Entweder du nimmst Ajax und lässt bei einem onChange-Event die zur Verfügung stehenden Möglichkeiten neu laden oder eine menge Javascript-Logik.

außerdem interessiert es mich, wie ich vorgeben kann, dass der anweder dieses feld unbedingt ausfüllen muss!

Sowas kann man zwar auch per Javascript machen, aber wirklich sicher ist nur eine serverseitige Überprüfung z.B. mit PHP

Grüße

Max

EDIT: Die Über-den-Daumen-Lösung mit JS:

01.
<html> 
02.
	<body> 
03.
		<script type="text/javascript"> 
04.
		 
05.
			function reloadLocations() { 
06.
				var allowedLoc = new Array(new Array(),      //0 
07.
				                           new Array('1'),     // IT an Ort 1 
08.
				                           new Array('1','2','3'), //Produktion an Ort 1,2,3 
09.
				                           new Array('1','3'),   // Vertrieb an Ort 1,3 
10.
				                           new Array('2'));  // Verwaltung an Ort 2 
11.
				var locations = new Array('','Ort 1','Ort 2','Ort 3'); 
12.
				 
13.
				var locSelect = getEl('loc'); 
14.
				var selectedOu = parseInt(document.frm1.ou.value); 
15.
				var availLoc = allowedLoc[selectedOu]; 
16.
				 
17.
				removeAllChilds(locSelect); 
18.
				 
19.
				for (var i=0; i < availLoc.length; i++) { 
20.
					var locItem = document.createElement("option"); 
21.
					locItem.setAttribute("value",i); 
22.
					locItem.appendChild(document.createTextNode(locations[availLoc[i]])); 
23.
					locSelect.appendChild(locItem); 
24.
				}; 
25.
				 
26.
27.
			 
28.
			function removeAllChilds (el) { 
29.
				if(el.hasChildNodes()) { 
30.
					while( el.childNodes.length >= 1) { 
31.
						el.removeChild(el.firstChild); 
32.
33.
34.
35.
			 
36.
			function getEl(e) { 
37.
				return document.getElementById(e); 
38.
39.
			 
40.
		</script> 
41.
		<form name="frm1"> 
42.
			Abteilung: 
43.
			<select name="ou" onchange="reloadLocations();"> 
44.
				<option value="0"></option> 
45.
				<option value="1">IT</option> 
46.
				<option value="2">Produktion</option> 
47.
				<option value="3">Vertrieb</option> 
48.
				<option value="4">Verwaltung</option> 
49.
			</select> 
50.
			<br /> 
51.
			Ort: 
52.
			<select name="loc" id="loc"> 
53.
			</select> 
54.
		</form> 
55.
	</body> 
56.
</html>
EDIT: Das ganze noch mit AJAX über den Daumen (nicht getestet, nicht praxistauglich):
Die HTML-Seite
01.
<html> 
02.
	<body> 
03.
		<script type="text/javascript"> 
04.
		 
05.
			function createXMLHttpRequest() { 
06.
				var req = null; 
07.
				try { 
08.
					req = new ActiveXObject("MSXML2.XMLHTTP"); 
09.
10.
				catch (err_MSXML2) { 
11.
					try { 
12.
						req = new ActiveXObject("Microsoft.XMLHTTP"); 
13.
14.
					catch (err_Microsoft) { 
15.
						if (typeof XMLHttpRequest != "undefined")  
16.
						req = new XMLHttpRequest; 
17.
18.
19.
				return req; 
20.
21.
		 
22.
			function reloadLocations() { 
23.
				var selectedOu = parseInt(document.frm1.ou.value); 
24.
				var locSelect = getEl('loc'); 
25.
				// AJAX 
26.
				var xmlHttp = createXMLHttpRequest(); 
27.
				xmlHttp.open('GET', 'backend.php?selectedOu=' + selectedOu, true); 
28.
				xmlHttp.onreadystatechange = function () { 
29.
					if (xmlHttp.readyState == 4) { 
30.
						//Verarbeitung der Serverdaten (Wir gehen von JSON-Daten aus) 
31.
						data = eval('(' + xmlHttp.responseText + ')'); 
32.
						//alte auswahlmöglichkeiten entsorgen 
33.
						removeAllChilds(locSelect); 
34.
						//neue einfügen 
35.
						for (var i=0; i < data.length; i++) { 
36.
							var locItem = document.createElement("option"); 
37.
							locItem.setAttribute("value",i); 
38.
							locItem.appendChild(document.createTextNode(data[i])); 
39.
							locSelect.appendChild(locItem); 
40.
						}; 
41.
42.
				}; 
43.
				xmlHttp.send(null); 
44.
45.
			 
46.
			function removeAllChilds (el) { 
47.
				if(el.hasChildNodes()) { 
48.
					while( el.childNodes.length >= 1) { 
49.
						el.removeChild(el.firstChild); 
50.
51.
52.
53.
			 
54.
			function getEl(e) { 
55.
				return document.getElementById(e); 
56.
57.
			 
58.
		</script> 
59.
		<form name="frm1"> 
60.
			Abteilung: 
61.
			<select name="ou" onchange="reloadLocations();"> 
62.
				<option value="0"></option> 
63.
				<option value="1">IT</option> 
64.
				<option value="2">Produktion</option> 
65.
				<option value="3">Vertrieb</option> 
66.
				<option value="4">Verwaltung</option> 
67.
			</select> 
68.
			<br /> 
69.
			Ort: 
70.
			<select name="loc" id="loc"> 
71.
			</select> 
72.
		</form> 
73.
	</body> 
74.
</html>
Die Datei backend.php:
01.
<?php 
02.
 
03.
	$allowedLocationsForOu = array
04.
		1 => array(1), 
05.
		2 => array(1,2,3), 
06.
		3 => array(1,3), 
07.
		4 => array(2) 
08.
		); 
09.
		 
10.
	$names = array('','Ort 1','Ort 2','Ort 3'); 
11.
	 
12.
	$currentAllowedLocations = $allowedLocationsForOu[$_GET['selectedOu']]; 
13.
	$returnArray = array(); 
14.
	foreach ($currentAllowedLocations as $key) { 
15.
		$returnArray[] = $names[$key]; 
16.
17.
	 
18.
	return json_encode($returnArray); 
19.
	 
20.
?>
Bitte warten ..
Mitglied: maretz
07.04.2009 um 23:11 Uhr
Dafür brauchst du zumindest JavaScript (wenn du die Listen statisch pflegen kannst) oder Ajax falls du die Daten zur Laufzeit aus der Datenbank ziehen willst...
Bitte warten ..
Mitglied: 65999
09.04.2009, aktualisiert 09.11.2016
Hallo. Danke für die Antworten ...

Das mit dem js hat 1a funktioniert. danke.
Bitte warten ..
Mitglied: dog
11.04.2009 um 04:25 Uhr
Ich muss sagen, die Frage verstehe ich nicht
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst HTML, VBScript: Bei Drop-Down-Auswahl bestimmte Radio-Buttons einblenden (3)

Frage von Yauhun zum Thema VB for Applications ...

JavaScript
gelöst Javascript - Speichern Zustand radio-buttons in localStorage (3)

Frage von internet2107 zum Thema JavaScript ...

JavaScript
gelöst Radio Button als Pflicht definieren mit js (4)

Frage von Pludan zum Thema JavaScript ...

Benchmarks
Hypervisor - Typ-2 schneller als Typ-1 (3)

Frage von 134408 zum Thema Benchmarks ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

Frage von udobec zum Thema LAN, WAN, Wireless ...