Probleme mit Array und Listenfeld mit Mehrfachauswahl

  • Themenstarter Themenstarter encom
  • Beginndatum Beginndatum
E

encom

Hallo,

ich habe eine Variable(Wert aus DB-Abfrage) mit folgenden Einträgen, die immer durch ein Komma getrennt sind

Eintrag1,Eintrag2,Eintrag3

Nun habe ich eine Liste wo unter anderem auch Eintrag1, Eintrag2 und Eintrag3 zur Auswahl stehen.

Wie kann ich nun alle Einträge in der Liste, die in der Variablen vorkommen vorselektieren?

Vielen Dank schon mal.
 
Zuletzt bearbeitet von einem Moderator:
hast du nen templatesystem oder ne vermaschung aus PHP Code un HTML, also beides in einer datei?

Sind die Werte im Dropdownfeld immer die gleichen oder ist das Dropdownfeld dynamisch (durch andere Werte aus der DB)?

wenn das Dropdown statisch ist und eine "Mischdatei" aus PHP und HTML dann ist es relativ einfach

PHP:
<?
.
.
$einarray = explode(",",$werteausdb);

// nun ein HTML Teil
?>
<select size="3" name=selectfeld" multiple>
<?
for($i=0;$i<=2;$i++)
{
   if($einarray[$i] == "Eintrag".($i+1))
        echo "<option value=\"Eintrag\"".($i+1)." selected>Eintrag".($i+1)."</option>";
    else
        echo "<option value="Eintrag\"".($i+1).">Eintrag".($i+1)."</option>";
}
?>
</select>

Das wird bestimmt nicht laufen, aber so in der Richtung könnte man es machen
Habs somit nicht getestet und ist hier im halbschlaf geschrieben ;) Bitte keine Kritik das es nciht geht oder total umständlich ist.

MfG
Andreas
 
Danke für deine Mühe, leider komme ich in der Tat nicht damit zurecht.

Also ich benutze Templates, die Werte in der Liste kommen aus einer datenbank sind also variabel.

Hier mal ein wenig quelltext

PHP:
#Fachpersonal für Auswahlliste aus DB personal auslesen
  $query_personal = "SELECT id, anrede, name, vorname FROM personal";
  $personal = mysql_query($query_personal, $conn) or die(mysql_error());
  $row_personal = mysql_fetch_assoc($personal);
  $anzahl_personen = mysql_NumRows($personal);


#Datensatz zum bearbeiten auslesen
  $query_edit="SELECT * FROM referate WHERE id = '$id'";
  $edit = mysql_query($query_edit, $conn) or die(mysql_error());
  $row_edit = mysql_fetch_assoc($edit);
  $MENGE = mysql_NumRows($edit);



#Daten des gewählten Eintrages anzeigen
if(isset($id))
{ 
  $t = new Template("templates/edit_referat.html");
  $t->setVar('id',$_GET['id']);
  $t->setVar("fachgebiet",$row_edit['fachgebiet']);
  $t->setVar("Linie",'<tr><td colspan="2" height="1" bgcolor="#CCCCCC"></td></tr>');


  #Liste des kompletten Fachpersonals auslesen
 do {
   if(trim($row_personal['anrede'] != "")) { $ANREDE  = $row_personal['anrede'].'&nbsp;'; } else { $ANREDE = ""; }

 #	if ($row_personal['id'] == $id) $t->setVar('fachpersonal.OFFICE_SELECT','SELECTED');
    if(trim($row_personal['anrede'] != "")) { $ANREDE = $row_personal['anrede'].'&nbsp;'; }else { $ANREDE = ""; } 
    $t->setVar('fachpersonal.name',$ANREDE.$row_personal['vorname'].'&nbsp;'.$row_personal['name']);
    $t->gotoNext("fachpersonal");
  } while ($row_personal = mysql_fetch_assoc($personal));
}

print $t->toString();


Ich hoffe dass doch noch einer helfen kann, ich mache hier schon den ganzen tag rum und komme keinen Schritt weiter.
Danke
 
selected

Hi!

Probiers mal folgendermaßen:

$query = "select * from deinetabelle";
$res = mysql_query($query);
if (!$res) die ("Anfrage scheitert.<BR>\n");

$rows = mysql_numrows($res);

$opt = "<option value='' >Einträge</option>";
for ($i=0; $i<$rows; $i++)
{
$row=mysql_fetch_array($res);
if ($gleich) $selected="selected" else $selected="";
$opt = $opt."\n\t\t\t\t\t\t\t\t\t <option value=$variable $selected>$wert</option>";
}

hierbei werden die einträge der db ausgelesen, und wenn $gleich erfüllt(also wert stimmt überein) dann wird der jeweilige eintrag vorselektiert.
(Code musst natürlich auf deine datenbankabfrage anpassen!)

Hoff ich konnt dir weiterhelfen!

lg
 
Zurück