von Philipp Gérard |
Okay, das klingt überzeugend. Tausend Dank, c3o!
Ich weiß ja dass 4543 nur eine Hausnummer war, aber je nach Anzahl könnte das dann doch ein wenig umfangreich werden... | hehe, nein. Das sollte ein Eintrag sein *g* |
von c3o |
Also in Worten so:
1. User wählt Name
2. Onchange im <select> merkt das
3. In unsichtbarem Iframe wird ein PHP-Skript aufgerufen, an dessen URL die angeforderte ID angehängt wird
4. Dort liest PHP die Daten aus der DB und setzt sie in eine fertige JavaScript-Formularausfüll-Funktion ein
5. Beim Seiten-onload wird diese Funktion ausgeführt, schreibt also die Daten in die entsprechenden Felder der "Mutterdatei".
Schwieriger wirds bei allem ausser Eingabefeldern, so zB Dropdowns, wo automatisch was vorausgewählt werden soll... |
von c3o |
Die gesamte DB in ein JS-Array? Ich weiß ja dass 4543 nur eine Hausnummer war, aber je nach Anzahl könnte das dann doch ein wenig umfangreich werden...
Ich denk ich würd da mit einem Iframe und ein bisschen gut gemischtem PHP+JS tricksen, und nur bei Bedarf die Daten laden.
Ein paar ungetestete Codefetzen:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15: |
<form>
<select onchange="geheimerframe.location.href='holdaten.php?id='+this.options[this.options.selectedIndex].value'">
<option value="1">Hans Mustermann</option>
...
</select>
<input id="feld_fuer_name" />
</form>
<iframe name="geheimerframe" src="" width="1" height="1" style="visibility:hidden;"></iframe>
|
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14: |
[holdaten.php]
<?
$name_aus_datenbank = verbinde_und_hol_dir_die_daten_von_userid($_GET['id']);
?>
<html><head><title>ein php-gebautes javascript</title>
<script type="text/javascript">
function fuell_formular() {
parent.document.getElementById('feld_fuer_name').value = '<?=$name_aus_datenbank ?>';
}
</script>
</head><body onload="fuell_formular()"></body></html>
|
Knackpunkt könnten vor allem JS-Sicherheitsrestriktionen von Cross-Frame-Scripting sein.. aber ich glaub es müsste so ähnlich gehen. |
von Philipp Gérard |
Servus,
ich stehe vor folgendem Problem:
Ich habe mehrere Formulare auf einer Seite und in diesen Formularen kann man einen Eintrag wählen, bei dem man dann einige Felder (z.B. Name, Telefon, Ort...) editieren kann. Nun will ich gerne, dass ein Benutzer, der z.B. aus einem Select-Feld den Eintrag #4543 auswählt, die Textfelder automatisch (ohne refresh der Seite) mit den alten in der Datenbank stehenden Feldern gefüllt bekommt. Ich stelle mir vor, in ein Array die Daten zu speichern und je nach Benutzerid (aus dem Select) die korrekten Daten in die Felder zu füllen. Leider habe ich aber von JS keine Ahnung - Könnt ihr helfen?
---
Arbeit ist das Feuer der Gestaltung. - Marx |
|