Javascript und PHP zusammen
Bahar
- programmiertechnik
0 EKKi0 Felix Riesterer
Hallo allerseits ich habe ein Problem. Erstmal die Problembeschreibung.
Ich habe eine Dropdown Liste, in der namen sind. Ich will jetzt wenn ich den Namen "Hans" gewählt habe er mir ein Select befehl ausführt. D. h. die Daten aus der Datenbank abfragt für Hans und diese in Textfelder lädt. Das würde heissen, bei Auswahl von Hans lädt er mir die benutzerlogin daten in die textfelder. Ich müsste also mit Javascript das Dropdown auslesen und dann mit mysql und php die Daten zu der Dropdownauswahl einlesen.
//MEINE DROPDOWNLISTE
<form method="POST" name="formular">
<select name ="username" size='1' >
<?php
foreach($user as $key => $name){
echo "<option value='$name' label ='$name'> $name </option>";
}
?>
</select>
MEINE SELECTABFRAGE ZUR DROPDOWNLISTE
foreach ($user as $key => $name){
$sel="SELECT benutzer_name,login FROM benutzer WHERE benutzer_name='$name'";
$request = mysql_query($sel);
while($fetch = mysql_fetch_assoc($request)){
$bename = $fetch['benutzer_name'];
$login = $fetch['login'];
}
}
Ich muss die beiden codes irgendwie verbinden, dass bei Auswahl der Dropdownliste dieser Selectbefehl ausgeführt wird. Sorry aber bin halt gerade in der Ausbildung als Entwickler also noch ein Anfänger
Mahlzeit Bahar,
Ich habe eine Dropdown Liste, in der namen sind. Ich will jetzt wenn ich den Namen "Hans" gewählt habe er mir ein Select befehl ausführt.
Preisfragen:
1. Wo wählt der Benutzer etwas aus der Auswahlliste aus: Client oder Server?
2. Wo wird die Datenbankabfrage durchgeführt: Client oder Server?
Wenn Du diese Fragen richtig beantwortet hast, darfst Du weiterlesen ...
Ich müsste also mit Javascript das Dropdown auslesen und dann mit mysql und php die Daten zu der Dropdownauswahl einlesen.
Richtig. Das bedeutet aber insbesondere, dass der Browser - nachdem der Benutzer die Auswahlliste geändert hat - eine neue Anfrage an den Server stellen muss, um von diesem dann aktuelle Daten, die zur getätigten Auswahl passen, zu erhalten. Informiere Dich über AJAX.
MfG,
EKKi
Lieber Bahar,
Du wurderst bereits auf Ajax hingewiesen. Hier noch ein Programmierproblem, das man "Übergang in anderen Kontext" nennt.
echo "<option value='$name' label ='$name'> $name </option>";
Hier hast Du eine Stringvariable $name, deren Inhalt in einem neuen Kontext (HTML-Code) ausgegeben werden soll. Hierfür musst Du diesen Inhalt entsprechend kodieren:
echo sprintf('<option value="%s" label="%s"> %s </option>', htmlspecialchars($name));
Im Übrigen fährst Du besser, wenn Du im HTML-Code doppelte Anführungszeichen bei Attributwerten benutzt. Nur so als Erfahrungstipp.
Liebe Grüße,
Felix Riesterer.
echo $begrüßung;
echo sprintf('<option value="%s" label="%s"> %s </option>', htmlspecialchars($name));
Drei Platzhalter und nur ein einzusetzender Wert, was ergibt das? Eine Fehlermeldung.
Warning: sprintf() [function.sprintf]: Too few arguments
Investiere 3 × 1$ um das Problem zu lösen.
echo sprintf('<option value="%1$s" label="%1$s"> %1$s </option>', htmlspecialchars($name));
echo "$verabschiedung $name";
Lieber dedlfix,
danke für Deine Korrektur.
Investiere 3 × 1$ um das Problem zu lösen.
Da habe ich echt geschlampt. Sollte das nächste Mal meinen Code vielleicht doch einmal testen...
Liebe Grüße,
Felix Riesterer.