kostenloser Webspace werbefrei: lima-city


php Dropdown-Formular-Feld

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bblues

    bblues hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. rechentrainer

    rechentrainer hat kostenlosen Webspace.

    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.
  4. 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.
  5. Autor dieses Themas

    bblues

    bblues hat kostenlosen Webspace.

    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
  6. 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
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!