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, 10299 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

Datenbanken
gelöst Eine Art Access, nur mit PHP und MySQL? (14)

Frage von McLion zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...