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, 4335 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Server-Hardware
gelöst Hilfe bei einer Server (Hardware) auswahl (30)

Frage von bjk190368 zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst Cisco Aironet Radio-Settings (6)

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

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...