Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4349 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 ...

C und C++
Arduino "Serial input zu analogwrite" (1)

Frage von Zerou24 zum Thema C und C ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

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

Festplatten, SSD, Raid
gelöst Raid-Controller (Areca) Datenverlust trotz R5 (16)

Frage von sebastian2608 zum Thema Festplatten, SSD, Raid ...