Franky: Weitere Auswahl nach erstem Absenden

Beitrag lesen

Moin, erstmal danke für die Antworten (vor allem dir Janosch, weil du deine immer wieder überarbeitest).
Ich hab das jetzt mit nem XMLHttpRequest realisiert und es funktioniert einwandfrei.
Hier mein Code:
Javascript:

function zeigFach(name){
	if(name == ""){
		document.getElementById("fachWahl").innerHTML = "";
		return;
	} else{
		if (window.XMLHttpRequest) {
			// Code für IE7+, Chrome, Opera, Safari
			xmlhttp = new XMLHttpRequest();
		} else {
			// Code für IE6 und IE5
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		xmlhttp.onreadystatechange = function() {
			if (this.readyState == 4 && this.status == 200) {
			document.getElementById("fachWahl").innerHTML = this.responseText;
			}
		};
		xmlhttp.open("GET","getfach.php?name="+name,true);
		xmlhttp.send();
	}
}

HTML:

<h1>Personen</h1>
<p>Bitte wählen Sie eine Person und das Fach aus.</p>
<?php 	include('php/message.php');	?>
<label for="person">Person:</label><br>
<select name="person" id="person" onchange="javascript:zeigFach(this.value);">
	<option value="" selected>Bitte wählen Sie eine Person...</option>
<?php	while($row = $ldata->fetch_array(MYSQLI_ASSOC)):	?>
	<option value="<?php echo $row['Name'];	?>" ><?php echo $row['Anrede'] . ' ' . $row['Titel'] . ' ' . $row['Vorname'] . ' ' . $row['Name'] . ', ' . $row['Fach 1'] . ' / ' . $row['Fach 2'] . ' / ' . $row['Fach 3'];	?></option>
<?php 	endwhile;	?>
</select><br>
<div id="fachWahl">Bitte wählen Sie eine Person um weiter Informationen zu erhalten.</div>

Die Datei getfach.php:

include 'php/connect.php';
if($mysqli->connect_error){
	$message['fehler'] = 'Datenverbindung fehlgeschlagen: ' . $mysqli->connect_error;
} else{
	// Name abrufen
	$person = $_GET['name'];
	
	// Tabellen abfrage 2
	$data2 = sprintf(
		"SELECT `Fach 1`, `Fach 2`, `Fach 3`, `Info`, `Raum`
		FROM `Personen` 
		WHERE `Name` = '%s'",
		$mysqli->real_escape_string($person)
	);
	$ldata2 = $mysqli->query($data2);
	$lrow = $ldata2->fetch_array(MYSQLI_ASSOC);
	
	// Formular ausgeben
	echo	'<form method="post" action="person.php">
			<label for="fach">Fächer:</label><br>
			<input type="button" name="f1" id="fach" value="' . $lrow['Fach 1'] . '">
			<input type="button" name="f2" id="fach" value="' . $lrow['Fach 2'] . '">
			<input type="button" name="f3" id="fach" value="' . $lrow['Fach 3'] . '"><br>
			<br>
			<fieldset>
				<p><b>Info: </b>' . $lrow['Info'] . '</p>
				<p><b>Raum: </b>' . $lrow['Raum'] . '</p>
			</fieldset>
			<br>
			<input type="submit" name="absenden" value="Weiter">
		</form>';
}

Danke nochmal
Franky