Autor Zpráva
R Příhoda
Profil *
Dobrý den,

jak řešíte označení položek v selectu, který je multiple?
nedaří se mi označit položky, které jsou v databázi.

 <select name=\"skupiny[]\" multiple=\"multiple\">";
  
 $rozdel = explode(",", $row['skupiny']);
$num_rozdel = count($rozdel); 

 $sql2 = MySQL_Query("SELECT * FROM skupiny");
 while ($row2 = MySQL_Fetch_Array($sql2)) {
 $nazev = $row2["nazev"];
 $id = $row2["id"];
$rozdel2 = explode(",", $row2['id']);
 $selected=false;
 if ("$rozdel"=="$rozdel2"): $selected="SELECTED"; endif;
 echo "<option value='$id' $selected>".$nazev."</option>";

   }  

je jasný, že ta podmínka nevyhovuje, vůbec mě nenapadá jak se tohle řeší, poradíte prosím?
Bertram
Profil
R Příhoda:
Ve vašem kódu je trochu zmatek, ale možná se pokoušíte o něco takového.
<?php
/* všechny položky */
$allItem = array('1'=>'lesson 1',
            '2'=>'lesson 2',
            '3'=>'lesson 3',
            '4'=>'lesson 4',
            '5'=>'lesson 5',
            '6'=>'lesson 6',
            '7'=>'lesson 7',
            '8'=>'lesson 8',
            );

/* položky, které mají být označeny */
$item = array('1'=>'lesson 1',
            '3'=>'lesson 3',
            '4'=>'lesson 4',
            '6'=>'lesson 6',
            );
?>

<!DOCTYPE html>
<html>
    <body>
        <form action="" method="post">
            <select name="lesson[]" multiple>
            <?php
            foreach ($allItem as $key => $value) {
                $option =  "<option value='" . $key . "'";
                if (array_key_exists($key, $item)){
                    $option .= " selected" . ">" . $value . "</option>";
                } else {
                    $option .= ">" . $value . "</option>";
                }
                echo $option;
            }
            ?>
            </select>
            <input type="submit" value="odeslat">
        </form>
    </body>
</html>

<?php
var_dump($_POST);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: