Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Formular: Inhalt von Input Feldern beim Ändern der Select Box... Antworten
Formular: Inhalt von Input Feldern beim Ändern der Select Box ändern

diwie
Otto-Normal-Poster


Beiträge: 51


Ich habe ein Formular bestehend aus einer select box (nachname) und 3 input feldern (vorname, status, ip)). In die select box werden die Nachnamen aller Benutzer aus einer MySQL Datenbank eingelesen. Jetzt möchte ich gerne, damit beim Ändern der select box (nachname) der zugehörige Inhalt (vorname, status, ip) in den anderen 3 input feldern dynamisch ausgetauscht wird.

Ausgegangen bin ich am Beispiel der Vorlage "Chained Select Boxes". Das klappt im Firefox auch wunderbar, nur im IE scheint $_GET['person'] nicht übergeben zu werden. Das ist leer und somit greift keine Datenbankabfrage. Wo steckt nur mein Fehler?

Formular
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12:
<select name="de_nachname" id="de_nachname" onchange="update_form_delete_user(this);">
<option>Bitte wählen!</option>
<?
$abfrage = "SELECT * FROM user";
$read_result = mysql_query ($abfrage);
while ($row = mysql_fetch_array ($read_result))	{
?>
<option><?echo $row['nachname']; ?></option>
<?
}		
?>
</select>



Javascipt
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19:
var ajax = new sack();

function update_form_delete_user (sel) {
	var nachname = sel.options[sel.selectedIndex].value;
	document.getElementById('de_vorname').value = '';
	document.getElementById('de_status').value = '';
	document.getElementById('de_ip').value = '';
	if (nachname.value != 'Bitte wählen!') {
		ajax.requestFile = 'get_data_db_user.php?person=' + escape(nachname);
		ajax.onCompletion = update_form_input;
		ajax.runAJAX();
	}
		
}

function update_form_input () {
	var obj = document.getElementById('delete_user');
	eval(ajax.response);
}


get_data_db_user.php
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18:
<?

if (isset($_GET['person'])) {

	include "konfiguration.php";
	$verbindung = @mysql_select_db ($db);
	if (!$verbindung) {echo "$datenbanknichtda";}
	$read_result = mysql_query ("SELECT * FROM user WHERE nachname = '".$_GET['person']."'");
	while ($row = mysql_fetch_array ($read_result))	{
		echo "document.getElementById('de_vorname').value = '".$row['vorname']."';\n";
		echo "document.getElementById('de_status').value = '".$row['status']."';\n";
		echo "document.getElementById('de_ip').value = '".$row['ip']."';\n";
	}
	mysql_close ($conn);

}

?>


Vielen Dank für Eure Zeit.

  Profil   Editieren   Zitieren

diwie
Otto-Normal-Poster


Beiträge: 51


selectedIndex scheint im IE Probleme zu bereiten. Ein Alert auf "nachname" bleibt im IE leider leer. Kennt jemand eine in beiden Browsern funktionierende Alternative?

  Profil   Editieren   Zitieren

Ori
Fachidiot


Beiträge: 115


Ein wenig Generelles:
Ändere doch Im JavaScript-Block Zeile 8 in
1:
if (sel.selectedIndex > 0)
, dann kannst Du die Beschriftung auch mal ändern.

Zum Problem:
Das ist mir auch schon aufgefallen. Der IE braucht gesetzte value-Angaben, sonst ist für ihn value="". Das ist zwar doppelt gemoppelt und eigentlich nicht erforderlich, dennoch macht der IE sonst nichts.

  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben