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

MySQL, PHP - Dynamisches Dropdown

Frage Entwicklung PHP

Mitglied: beckslevel91

beckslevel91 (Level 1) - Jetzt verbinden

30.09.2009, aktualisiert 02.10.2009, 10562 Aufrufe, 5 Kommentare

Hallo,

Ich habe folgendes Problem:

Ich habe eine PHP-Seite gemacht, die Klientendaten aus einer MySQL Datenbank ausliest und darstellt. Diese kann man mit einem Filter nach dem Kriterium "Abteilung" filtern. Nun möchte ich,
dass, sobald ich eine Abteilung gefiltert habe, ein 2. Dropdownmenü erscheint, das mich einen Klienten der gewählten Abteilung auswählen lässt, nach dem wiederum gefiltert wird. (Für einen Klienten können mehrere Datensätze vorhanden sein, deshalb).

Das Problem ist, das ich keine Ahnung habe, wie ich das realisieren soll. Mit Drop-Down's und Filtern kenne ich mich aus, aber ich bräuchte hier eine Art Ansatz, wie das ganze funktionieren kann..

Vielen Dank im Vorraus,

J.R.

PS: MySQL-Version: 5.0.45
Mitglied: BCCray
30.09.2009 um 11:57 Uhr
Das müsstest du mittels AJAX lösen, denk ich mal....

Hier eine englisch-sprachige Variante von deinem Vorhaben (ich denke das ein Abändern auf deine Bedürfnisse möglich ist):
Ajax Dropdown
Bitte warten ..
Mitglied: beckslevel91
30.09.2009 um 13:21 Uhr
Okay, vielen Dank! Das ist genau das was ich brauche..

allerdings funktioniert das nicht so richtig...

trotzdem danke =)

J.R.
Bitte warten ..
Mitglied: TWAWLW
30.09.2009 um 15:14 Uhr
Hi,

mach doch ein Formular mit Deiner Liste und dann:

<select name="abc" onchange=submit()>

und frage die Variable auf Existenz bzw. Inhalt in Deinem Programm ab.

Mach ich dauernd so

Viel Erfolg,
TWAWLW
Bitte warten ..
Mitglied: beckslevel91
01.10.2009 um 08:33 Uhr
Hey, also ich habs jetzt wie folgt gelöst/versucht:

01.
<form method="POST"> 
02.
	<?php 
03.
		include 'dbconnect.php'; 
04.
		$i = 1; 
05.
		$filterabfrage = "SELECT * FROM tablename WHERE abteilung = '".$filter."'"." order by name"; 
06.
	 
07.
		$result = $db->query($filterabfrage); 
08.
			if (!$result) 
09.
10.
			die('Der Query konnte nicht ausgef&uuml;hrt werden: '.$db->error); 
11.
12.
		if ($result->num_rows) 
13.
14.
		echo '<select size="1" name="namefilter" onchange=submit()>'; 
15.
		echo '<option value="0">Alle</option>'; 
16.
			while ($row = $result->fetch_assoc()) 
17.
18.
		echo '<option value='.$i.'>'.($row['name']).'</option>'; 
19.
			$i=$i+1; 
20.
21.
22.
 
23.
		?> 
24.
		</select> 
25.
		<br><br> 
26.
	<br> 
27.
	</form> 
28.
<?php 
29.
	if(isset($_POST["namefilter"])) 
30.
31.
		//?????????????? 
32.
33.
?> 
34.
 
Anmerkungen:
- in "dbconnect.php" verbinde ich mich mit der Datenbank
- die $filter-Variable bekomme ich aus einem anderen Formular (dieses Formular wird selbst nur included, die $filter Variable wird also vorher schon übergeben)
- Es funktioniert soweit, dass wenn ich den 1. Filter auswähle (Abteilung) dass er mir dann die richtigen Namen ausspuckt (eben von d. jeweiligen Abteilung)

Hier der Inhalt meiner "getdbcontent.php" die nach dem oberen Formular ausgeführt wird und die Inhalte laden soll:

01.
if($filter == "" && $namefilter == "") 
02.
03.
		$abfrage = "SELECT sonstiges, id, abteilung, name, betrieb, art, DATE_FORMAT(von, '%d.%m.%Y') AS von, DATE_FORMAT(bis, '%d.%m.%Y') AS bis FROM praktikum 
04.
                                      ORDER BY abteilung, name"; 
05.
		$stand = "SELECT MAX(stand) FROM praktikum"; 
06.
	} else if($namefilter == ""){ 
07.
		$abfrage = "SELECT sonstiges, id, abteilung, name, betrieb, art, DATE_FORMAT(von, '%d.%m.%Y') AS von, DATE_FORMAT(bis, '%d.%m.%Y') AS bis FROM praktikum 
08.
                                      WHERE abteilung = '".$filter."'"." ORDER BY abteilung, name"; 
09.
		$stand = "SELECT MAX(stand) FROM praktikum"; 
10.
	} else if($namefilter != ""){ 
11.
		$abfrage = "SELECT sonstiges, id, abteilung, name, betrieb, art, DATE_FORMAT(von, '%d.%m.%Y') AS von, DATE_FORMAT(bis, '%d.%m.%Y') AS bis FROM praktikum 
12.
                                      WHERE  name = '".$namefilter."'"." ORDER BY betrieb"; 
13.
		$stand = "SELECT MAX(stand) FROM praktikum"; 
14.
15.
.....
Anmerkungen:
- nach diesen SQL-Befehlen werden die Datensätze in eine Tabelle geschrieben. -> Das funktioniert auch für den gesamten Inhalt einer Abteilung
kann mir i-jemand helfen, bitte?

Nun brauche ich eine Art Schleife/Abfrage (dort wo die ?? auskommentiert sind, der mir, anhand der ausgewählten Value im Dropdown einen namen (Datensatz-teil) oder den "angewählten Text im Dropdown) in die Variable "$namefilter" übergibt. Wie funktioniert das. Versteht überhaupt jemand was ich meine? Weiß nicht genau wie ich das noch erklären könnte, sry..

Gruß,

J.R.
Bitte warten ..
Mitglied: beckslevel91
01.10.2009 um 09:42 Uhr
Habs jetzt wie folgt gelöst (zumindest im Ansatz):

oben vor den SQL-Befehlen in "getdbcontent.php" habe ich folgendes:

01.
if(isset($_POST["namefilter"])) 
02.
03.
$namefilter = $_POST["namefilter"]; 
04.
} else { 
05.
$namefilter = ""; 
06.
}
Gruß,

J.R.
Bitte warten ..
Ähnliche Inhalte
PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

VB for Applications
gelöst Abhängige Dropdown Menüs in Excel (2)

Frage von Zentralenteufel zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Firewall
Richtige Grundeinstellungen der Pfsense für mein Netzwerk (15)

Frage von Spitzbube zum Thema Firewall ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...