php Dropdown-Formular-Feld
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absenden
assistent
aufruf
ausgabe
auswahl
chef
code
datum
feld
formular
funktion
hauptsache
komma
problem
set
sex
speichern
tabelle
update
zeile
-
Hi Leute,
ich möchte ein Dropdown-Formularfeld mit Daten aus MySql füllen (das stellt kein Problem dar).
Nun möchte ich aber auch noch, dass eine Auswahl im Dropdown lt. einer anderen Tabelle getroffen wird.
Bsp: ich habe verschiedene Personen in einer Tabelle mit Funktionen (z.B. Chef, Assistent, ...). Die Namen der Funktionen sind in einer eigenen Tabelle abgelegt (normiert).
Nun möchte ich, dass bei der jeweiligen Person die Funktion angezeigt wird, aber auch geändert werden kann (dann mit Button in MYSQL updaten - auch kein Problem).
Also bei Person 1 steht Assistent in der Dropbox - der wird aber zum Chef - dann möchte ich einfach im Dropdown Chef auswählen und mit Update in mysql ändern.
Problemstellung halbwegs klar??
Habe schon gegoogelt, aber ich glaube, mir fehlen die richtigen Stichworte.
Bin für alle Anregungen dankbar.
lg, bblues -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
warum schreibst du keine Codefetzten?
Ich weiß nicht ob ich dich richtig verstehe, aber wenn dann willst du eine form und eine Tabelle machen:
<form action="updaten.php" method="get"> <table> <tr> <th>Name</th><th>Funktion</th> </tr> </table> <input type="submit" value="Abschicken"> </form>
Und in diese Tabelle machst du einen select:
<form action="updaten.php" method="get"> <table> <tr> <th>Name</th><th>Funktion</th> </tr> <tr> <th>Hier der Name</th><th><select name="funktion"><option value="manager">manager></option>...</select> </table> <input type="submit" value="Abschicken"> </form>
Du musst dann nur in php die Tabelle erweitern. -
Du meinst Wahrscheinlich sowas:
<form method="POST"> <select name="choose_rank"> <option value="chef1">Chef Rank 1</option> <option value="chef2">Chef Rank 2</option> </select> </form> <?PHP mysql_query(..... SET rank='".$_POST['choose_rank']."'.......); ?> // Der Inhalt von value="..." wird in das Feld rank eingetragen.
-
danke instantlima, denke es geht genau in diese Richtung.
Allerdings bin ich totaler Newbie und weiß nicht wie ich das SET einbauen muss.
Derzeit sieht mein Code für das Dropdown so aus:
$sex = "SELECT `id_sex`, `s_geschlecht` FROM `tbl_geschlecht`"; $dd_geschlecht = mysql_query($sex) or die("Anfrage nicht erfolgreich"); // für jeden Eintrag ein Option-Tag erstellen while ($row = mysql_fetch_array($dd_geschlecht)) { echo '<option value="'.$row['id_sex'].'"'.($_POST['s_geschlecht'] == $row['id_sex'] ? " selected": "").'>'.$row['s_geschlecht'].'</option>'; } ;
(bin allerdings mitten in einer HTML Tabelle)
lg, stefan -
Hallo
die Ausgabe des DropDown im Formular hast Du ja schon, was Du brauchst
ist dann eine MySQL UPDATE Anweisung nach dem Absenden des Formular.
// ----------------------------------------------------- if ($_POST['submit'] == 'Abschicken') { // ---- Das Formular wurde gesendet ... also (neue) Daten Speichern ---- // ---- MySQL Verbindung aufbauen oder diese besteht bereits ---- $user_id = mysql_real_escape_string($_POST['user_id']; $new_rank = mysql_real_escape_string($_POST['choose_rank']; $new_sex = mysql_real_escape_string($_POST['choose_sex']; $sql_update = "UPDATE Persons SET rank='".$new_rank.", sex='".$new_sex."' ' WHERE uID='".$user_id.""; $res_update = mysql_query($sql_update); if (!$res_update) { print "<p>Fehler bei UPDATE</p>\n". mysql_error(); exit; } else { print "<p>OK .... UPDATE</p>\n"; } } // ----------------------------------------------------- else { // ---- Das Formular wurde noch nicht gesendet ... also Formular ausgeben ---- // ---- ... hier dein Code für die Formular-Ausgabe ---- } // -----------------------------------------------------
den Wert für user_id kannst Du in einem hidden Field im Formular mit-senden,
um den User, für den die Daten gespeichert werden sollen, eindeutig zu identifizieren
hier im Beispiel ist die user_id in der MySQL-Tabelle in der SPalte uID hinterlegt.
um Update für mehrere Tabellen-Felder zu machen (name, telefon, etc...)
kannst Du nach SET die einzelnen Spalten mit Komma getrennt auf-listen
UPDATE table_name SET column1=value1, column2=value2, column3=value3 WHERE some_column=some_value
und mit WHERE setzt Du eine eindeutige Zuwesung,
in welcher Zeile das Update geschrieben werden soll
das können auch mehrere Bedingungen sein ...
WHERE bedingung1=wert1 AND bedingung2=wert2
hauptsache der UPDATE Aufruf wird genau der Zeile zugeordnet, die betroffen ist
Du kannst nach Absenden des Formular immer alle Daten neu Speichern,
oder du prüfst vorher, welche Werte sich geändert haben, und machst dann
nur für diese geänderten Spalten das UPDATE (nach SET durch Komma getrennt)
Beitrag zuletzt geändert: 31.3.2013 11:25:41 von spielequest -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage