SELECT Feld deren Option selected setzen

EuroCent

Klappstuhl 2.0
Hallo zusammen,

ich sitze gerade vor einem kleinen Problem :)

In meiner Datenbank habe Ich 2 Tabellen: mitarbeiter & tk_teams

unter Mitarbeiter werden Daten gespeichert: UID, Name, Team
unter tk_teams: teamid, Teamname

Nun möchte Ich per Abfrage:
PHP:
$userid = isset($_REQUEST['edit']) ? $_REQUEST['edit'] : 0;

$sql = $db->__query("SELECT * FROM mitarbeiter WHERE id='{$userid}'");
$row = $db->__fetchArray($sql);

Nun lese Ich für das Select-Feld die Teams aus:
PHP:
$options = '';

$tSql = $db->__query("SELECT * FROM tk_teams ORDER BY teamid ASC");
while($tRow = $db->__fetchArray($tSql)) {
    $options .= '<option value="'.$tRow['teamtag'].'">'.$tRow['teamname'].'</option>'."\r\n";
}

Ich lasse es dann zwischen den <select> und dem </select> ausgeben.

Nun möchte Ich aber dass Ich beim Laden der Seite, oder auf desen Link um zur Bearbeitung hinzukommen, schon festlegen, welches options-Fewld ausgewählt wird und mit einem selected ausgefüllt wird.

Derzeit regele Ich es etwas umständlich:
PHP:
$selected[] = false;

switch($row['getteam']) {
    case 'Team_01':
        $selected['0'] = true;
    break;
    case 'Team_02':
        $selected['1'] = true;
    break;
    case 'Team_03':
        $selected['2'] = true;
    break;
}

Ausgabe HTML:
HTML:
<select class="form-control" id="team" name="team" required>
    <option value="Team_01" <?php if($selected['0'] == true) echo "selected"; ?>>Team 01</option>
    <option value="Team_02" <?php if($selected['1'] == true) echo "selected"; ?>>Team 02</option>
    <option value="Team_03" <?php if($selected['2'] == true) echo "selected"; ?>>Team 03</option>
</select>
Bei den 3 Einträgen ist es sicherlich kein Beinbruch, aber Ich habe mittlerweile mehr als 30 - 35 Datensätze.
Ich müsste dies also immer händisch aktualisieren.

Und das möchte ich vermeiden :)
Die Daten werden ausgelesen und können von einer Person bearbeitet werden, sprich die Datensätze zu Mitarbeiter werden angepasst, weil Name sich ändert oder der gleichen.

Oder der das Team gewechselt hat.

Hoffe man kann mir folgen was ich möchte. :)

Ich bin am überlegen ob es mit jQuery geht und dies eine otionale Lösung wäre, wenn es damit realisierbar ist.
 
Weiß nicht genau, ob ich das richtig verstehe, weil die Lösung, die mir einfällt, so einfach ist. Speichere doch den Teamnamen in einer Variablen und werte diese aus, wenn Du die Optionen generiest:
PHP:
$teamname = $row['getteam'];

// und spaeter:
while($tRow = $db->__fetchArray($tSql)) {
     if ($tRow['teamname'] == $teamname) $selected = ' selected'; else $selelected = '';
     $options .= '<option value="'.$tRow['teamtag'].'"' . $selected . '>'.$tRow['teamname'].'</option>'."\r\n";
}
 
OMG... darauf hätte Ich aber auch kommen müssen :D

Herzlichen Dank :)

Habe deines etwas angepasst ;)
PHP:
$sqlteam = $db->__query("SELECT * FROM tk_teams ORDER BY teamhash ASC");
while($tRow = $db->__fetchArray($sqlteam)) {
    $selected = ($tRow['teamhash'] == $teamname) ? ' selected' : '';
    $options .= '<option value="'.$tRow['teamhash'].'"' . $selected . '>'.$tRow['teamname'].'</option>'."\r\n";
}

Hab quasi einfach die if-Abfrage verkürzt :)
 

Neue Beiträge

Zurück