• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem beim Abspeichern von Formulardaten, die aufgrund einer 1:n Beziehung von einander abhängig s

andbg

Neues Mitglied
Hallo Experten :)

Ich habe die folgende Frage:

In einem Formular nutze ich ein DropDown Element, um Kategorien anzuzeigen.
Die Inhalte des DropDown Feldes stammen aus einer MySQL Tabelle. In dieser werden zwei Attribute "KatID" und "Katbez" gespeichert. Angezeigt wird nur die Bezeichnung. Nicht die ID.
Das funktioniert auch soweit.

Ich möchte die Daten, die in dem Formular gespeichert werden in einer weiteren MySQL Tabelle speichern.
Das Attribut mit der Kategorie soll aber nicht die "Katbez" sondern die "KatID" speichern. Es ist in der DB auch als
Datentyp "int" deklariert.

Was bisher funktioniert ist folgendes:

1. Formular wird aufgerufen
2. Dropdown-Feld wird mit den Kategorien gefüllt.

Mein Problem:

Ich muss / will die ID speichern. Lasse ich den Datensatz anzeigen, stelle ich über eine inner-join Verknüpfung
zwischen beiden Tabellen sicher, dass die korreke Bezeichnung zu der gespeicherten ID angezeigt wird.

Mein Drop-Down-Feld zeigt aber ja Text an.
Muss ich die ID in einem versteckten Feld ablegen, um beim Abspeichern des Formular darauf zugreifen können.
Und wenn dies der Fall sein sollte, wie muss ich das machen? Mit einem JavaSkript ?
Hat jemand soetwas schon mal gemacht und kann helfen ? Gibt es CodeSchnippsel dazu ?


Vielen Dank
Andreas
 
Ohne Quellcode kann man dir schwer sagen was Du falsch machst. Auf Grund deiner Beschreibung nehmen ich an, dass Du das Drop-Down-Feld in etwa so ausgebaut hast:

HTML:
<select name="feldname"><option>Text</option></select>

Wenn Du statt dem Text eine ID des ausgewählten Eintrags übergeben willst, verwende das value-Attribut:
HTML:
<select name="feldname"><option value="1">Text</option></select>
 
Hallo!

Danke für die schnelle Antwort!
Stimmt. Den Quelltext hätte ich posten sollen:

<?php
$db_handle=@mysql_connect($dbserver,$dbuser,$dbpasswd) or die("Keine Verbindung");
$sqlstatement= "Select kategorieid, kategoriebezeichnung from kategorien";

@mysql_select_db($dbname,$db_handle);
$ergebnis=@mysql_query($sqlstatement);
while ($row = mysql_fetch_array($ergebnis))


echo "<option>" . $row['kategoriebezeichnung'] ."</option>" ?>" </select> </td>



Und wenn ich Deine Antwort lese könnte ich mich ja auch fast ohrfeigen...

muss dann wohl irgendwoe so aussehen...
echo "<option value=". $row['kategorieid'] .">" . $row['kategoriebezeichnung'] ."</option>" ?>" </select> </td>

Werde ich gleich mal testen.

Vielen Dank!
 
Zurück
Oben