PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Dynamische Mehrfachauswahl (https://www.php-resource.de/forum/php-developer-forum/25540-dynamische-mehrfachauswahl.html)

tolwin 05-09-2003 11:07

Dynamische Mehrfachauswahl
 
Hallo Leute,

habe hierzu einige nützliche Tipps über die Suche gefunden.
Allerdings bekomme ich folgendes nicht hin:

<select size="1" onChange="DropDownMenu(this)" name="coordinator" style="width=160px; font-size=11;" multiple>
<?
$result = mysql_query("SELECT * from ep_Person") or die ("Fehler");
if ($result)
{
while ($row = mysql_fetch_array($result))
{
if ($liste_coordinator == $row["Person_ID"])
{
$selected = "selected";
}
if ($liste_coordinator2 == $row["Person_ID"])
{
$selected = "selected";
}
else
{
$selected = "";
}
print "<option value='". $row["Person_ID"] ."' ".$selected.">" . $row["Name"] ."</option>\n";
}
}
?>
In der DB ep_Person sind Namen in Verbindung mit einer ID hinterlegt.
Die Variablen $liste_coordinator und $liste_coordinator2 enthalten die
jeweilige ID der Person die als selected in einem multiple Select erscheinen sollen. Leider erscheint immer nur eine Person als selected. Hat jemand einen Tipp für mich wie ich vorgehen sollte?
Danke....

wahsaga 05-09-2003 11:15

Re: Dynamische Mehrfachauswahl
 
du verschachtelst einfach falsch ... mit korrekten einrückungen ist dies auch leicht zu erkennen:

PHP-Code:

if ($liste_coordinator == $row["Person_ID"])
{
    
$selected "selected";
}

if (
$liste_coordinator2 == $row["Person_ID"])
{
    
$selected "selected";
}
else
{    
    
$selected "";


das erste if prüft ab, ob der wert gleich $liste_coordinator ist. wenn ja, hast du also $selected = "selected";

das zweite if prüft dies für $liste_coordinator2 ab.
wenn if #1 schon erfüllt war, ist dies wahrscheinlich nicht auch gleichzeitig erfüllt, also geht er hier in den else-zweig - $selected wird also mit einem leerstring überschrieben.

eine korrekte schachtelung wäre
PHP-Code:

if ($liste_coordinator == $row["Person_ID"])
{
    
$selected "selected";
}
else
{
   if (
$liste_coordinator2 == $row["Person_ID"])
   {
       
$selected "selected";
   }
   else
   {    
       
$selected "";
   }



oder aber gleich die kürzere form
PHP-Code:

if ($row["Person_ID"] == $liste_coordinator || $row["Person_ID"] == $liste_coordinator2)
{
    
$selected "selected";
}
else
{    
    
$selected "";



tolwin 05-09-2003 11:31

Hey Super!!!
Das war´s gewesen, vielen Dank!
Eingentlich war alles richtig eingerückt, die Formatierung wurde nur im
Forum nicht übernommen. :(

Also nochmals vielen Dank

scriptingmike 05-09-2003 12:33

Wie das mit Quellcode posten geht

SIEHE
Posten von Quellcode


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:15 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG