von Ori |
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. |
von diwie |
selectedIndex scheint im IE Probleme zu bereiten. Ein Alert auf "nachname" bleibt im IE leider leer. Kennt jemand eine in beiden Browsern funktionierende Alternative? |
von diwie |
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. |
|