Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   HTML/PHP: Dropdownbox --> Neuladen der Seite nach Auswahl (https://www.delphipraxis.net/55158-html-php-dropdownbox-neuladen-der-seite-nach-auswahl.html)

Ajintaro 17. Okt 2005 14:38


HTML/PHP: Dropdownbox --> Neuladen der Seite nach Auswahl
 
Hallo ihrs!

Ich fummel nebenbei an einer Benutzerverwaltung in PHP/HTML und MySql. Läuft ganz gut nur hab ich jetzt ein lustiges Problemchen: ich möchte dem Nutzer eine Wahl zwischen A und B geben. Je nach Auswahl wird eine andere Dropdownbox aktualisiert.

Ein Beispiel:
Treiber für ne Hardwarekomponente auswählen. Man wählt erstmal aus ob man (A) Windows oder (B) Linux als Betriebssystem installiert hat. Je nach Auswahl füllt sich die Dropdownbox darunter mit Win2K, WinXP für (A) bzw Suse, Redhat für Auswahl (B)

Im Prinzip wird ja nach der Auswahl nur die Seite neu geladen und den Wert der Auswahl an die nächste Datenbank-Abfrage übergeben. Vom Verständnis kein Ding, nur kenn ich die Syntax nicht dazu.
Gibts da kein OnChange Verhalten für HTML Formularobjekte wie der Dropdownbox ?

Hier mein Code:
(Das ist alles in einer schönen Tabelle geordnet)

<tr>
<td><font color="#FFFFFF">Account(s):</font></td>
<td>
<?PHP
//***********ACCOUNT AUSLESEN*************************
$result_account = mysql_query ("SELECT account_name, account_id FROM ajin_account WHERE (belongs_to_id=$ID) ORDER BY account_name ASC", $data);
$checklog_account = mysql_num_rows($result_account);

$k=0;
echo"<select name='my_account'>";

while ($k<$checklog_account)
{// whileopen
$account_name_box = mysql_result($result_account, $k,"account_name");
//box zeigt den aktuellen eintrag an
echo"<option>$account_name_box</option>";

$k++;

}//whileclose

//***********ACCOUNT AUSLESEN*****************************************
?>
</td>
<td><div align="center"><font color="#FFFFFF">[img]../img/b_edit.png[/img]</font></div></td>
</tr>
<tr>
<td height="22"><font color="#FFFFFF">Chars(s):</font></td>
<td>
<?PHP
//***********CHARS AUSLESEN*************************
$result_chars = mysql_query ("SELECT char_name FROM ajin_chars WHERE (belongs_to_id=$ID) AND (belongs_to_account=?) ORDER BY char_name ASC", $data);
$checklog_chars = mysql_num_rows($result_chars);

$k=0;
echo"<select name='my_char'>";

while ($k<$checklog_chars)
{// whileopen
$chars_name_box = mysql_result($result_chars, $k,"char_name");
//box zeigt den aktuellen eintrag an
echo"<option>$chars_name_box</option>";

$k++;

}//whileclose

//***********CHARS AUSLESEN*****************************************
?>
</td>


Einfach: oben wählt der Nutzer seinen Account aus und die Box darunter füllt sich dann mit den entsprechenden Charackteren dieses Accounts.

jfheins 17. Okt 2005 14:40

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
Javascript ;)

Da gibts das onChange :mrgreen:

Ajintaro 18. Okt 2005 13:06

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
Ich bin fix u. fertig...

Ok mit Javascript habe ich ein onChange Ereignis auslösen können. Allerding beschränkte sich dieses Ereignis auf ein simples Alert. *seufz*
Ich kann ja auch onChange'javascript:my_function(); eine funktion einbauen, wie aber teile ich meiner Funktion mit, welches Element gerade ausgewählt wurde bzw a little bit more tricky: wie kann ich eine Variable von Javascript an PHP übergeben?

Jezt versteht mich nicht falsch. Ich hab eben gut 2h damit verbracht eine Lösung für das Problem zu finden. Es kann doch net so schwer sein Javascript, PHP und ne MySQL-Abfrage zu verheiraten. Ich dreh noch durch....

<?PHP
...
echo"<select name='my_account' onChange'javascript:my_function' >";

while ($k<$checklog_account)
{
$account_name_box = mysql_result($result_account, $k,"account_name");
echo"<option>$account_name_box</option>";
$k++;
}
?>


Mit diesem Ansatz kann ich my_function aufrufen... Aber wie bekommt die Funktion my_function den selektierten Box Eintrag übergeben? Und wie übergebe ich dann diese Variable wieder in PHP um die entsprechende Datenbank Abfrage zu realisieren?

<?PHP
...
echo"<select name='my_account' onChange'alert('Es wurde +(this.selectedItem)+ ausgewählt')' >";

while ($k<$checklog_account)
{
$account_name_box = mysql_result($result_account, $k,"account_name");
echo"<option>$account_name_box</option>";
$k++;
}
?>


Mit diesem Ansatz bekomme ich zwar den gewählten Eintrag als Meldung angezeigt, aber wie kann ich deses Ergebnis in eine PHP Variable umwandeln?

Ziel ist es je nach Auswahl eine Datenbankabfrage zu machen. Ich hab auch schon versucht eine neue php Seite zu coden die den Eintrag aus der DB liest. Aber auch diese neue Seite benötigt die Variable des gewählten Eintrags....

*heul*

Ich reite glaub ich gerade ein mächtiges Holzpferd auf einem noch grösseren Holzweg.... kann mich einer halbwegs erlösen??

Palando 18. Okt 2005 13:35

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
Wieso schreibst du nicht per PHP in ein Array für Javascript sämtliche möglichen Auswahlmöglichkeiten und ihre Zugehörigkeit und je nachdem, was im Dropdown ausgewählt wurde, änderst du, wieder per JS, den Inhalt der folgenden Dropdowns.

Am Ende sendest du das ganze Formular ab und erhältst je nach Stellung der Dropdowns den ganzen Spaß wieder für dein PHP-Script.

Ajintaro 18. Okt 2005 14:09

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
Uh, oh. Das muss ich erstmal verdauen. Wie würde denn so ein Gebilde aussehen?

Palando 18. Okt 2005 14:10

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
Davon hab ich leider noch weniger Ahnung als du ;).
War nur ein Gedankengang, ich weiß au garnet obs möglich ist. Sollte aber doch gehen.


e2/Hier ist es so ähnlich gelöst.

Ajintaro 18. Okt 2005 14:27

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
Ja nvidia macht es fast so wie ich mir das vorstelle. Nur Benutzten die keine Dropdowns sondern dieses Listendings. Und: die Einträge sind alle fest im Quellcode integriert. Genau das möchte ich ja vermeiden denn bei jeder blöden Änderung muss ich wieder an den Quelltext... Deshalb wollte ich diese Einträge aus ner Datenbank haben.

Für mich im Moment unlösbar :-(

Palando 18. Okt 2005 14:31

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
PHP kann ja die Daten aus einer Datenbank auslesen und dann diesen Arrayteil im Quelltext ausgeben.

Ajintaro 18. Okt 2005 14:52

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
Hmm ich wollte den umgekehrten Weg gehen: erst wissen was ich zu laden habe und dann auch nur das laden. Wenn ich zuerst alles Pauschal aus der DB lade hab ich ne Menge ungewollten Käse im Array.

Palando 18. Okt 2005 15:01

Re: HTML/PHP: Dropdownbox --> Neuladen der Seite nach Aus
 
Ansonsten musst du natürlich nach jeder Änderung des Arrays das Formular absenden und interpretieren.

Ich würde da lieber den Weg über das ein bisschen zu volle Array gehen, da da das Formular nur einmal abgesendet werden muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz