Autor Zpráva
snazimse
Profil
Zdravím,

rád bych se zeptal,jak nejlépe řešit,
select box, a nastavení selected ?

Mám okolo 300 položek v select boxu
a myslím že ručně,nějakým takovým způsobem,
je to dosti nešikovné,pracné a nepraktické.Zkoušel jsem to i JS,ale nějak se mi to nepodařilo,docílil jsem stejného výsledku jako s PHP kodém.
Potřeboval bych to řešit,nějak automaticky,protože mít tolik položek a ke každému optionu vkládat,
php kod,viz příklad,dá se to nějak automaticky označit s mnoha položek selected jestli je vybrána ta jedna?

Díky všem!

<select name="list" id="list" class="list">
    <option value="-1">Select option</option>
    <option class="level-0" value="208"<?php if($list == "208") { echo ' selected="selected"'; } ?>>1</option>
    <option class="level-0" value="164"<?php if($list == "164") { echo ' selected="selected"'; } ?>>2</option>
    <option class="level-0" value="25"<?php if($list == "25") { echo ' selected="selected"'; } ?>>3</option>
Str4wberry
Profil
Můžete ty <option>y generovat cyklem.

Mimochodem, k čemu to potřebujete? Vybírat si z 300 položek v <select>u bude nejspíš dost nepohodlné.
mimochodec
Profil
$array = array(11,22,54,74);

foreach ($array as $value) {

  echo "<option class='level-0' value='".$value."'";

  if($list == $value) {
    echo " selected='selected'";
  };
  echo ">".$value."</option>";
}

Ještě poznámka: za čárkou se píše mezera, na konci věty tečka a mezera, pak následuje velké písmeno.
snazimse
Profil
Str4wberry
To já vím,že cyklem,i to že je to nepohodlné,ale prostě je tam 300 položek.


mimochodec:

Já to myslel tak,abych prostě nemusel tam psát to selected ke každému,
a jestli v cyklu nebo bez.Samozřejmě,že cykl je lepší.

Aby prostě na co takhle kliknu se uložilo,jako selected,než se zase refresne stránka,ale asi nic takového neexistuje.
Zkoušel jsem to pomocí JS,ale nepodařilo se mi to nějak.Když nevím ,která položka je selected.
<select name="list" id="list" class="list">
    <option value="-1">Select option</option>
    <option class="level-0" value="208">1</option>
    <option class="level-0" value="164">2</option>
    <option class="level-0" value="25">3</option>


Díky vám!
Monkeys
Profil *
snazimse:

Ak ma byt hodnota v selecte zobrazena aj po refreshi stranky tak daj formularu method get tym sa ti ulozi posledna zvolena hodnota do URL a ty si ju mozes vytiahnut a pouzit

M.
mimochodec
Profil
snazimse:
Aby prostě na co takhle kliknu se uložilo,jako selected,než se zase refresne stránka,ale asi nic takového neexistuje.

Existuje. Pohlídej si pomocí JS událost kliknutí na položku seznamu, seznam vybraných položek ukládej buď v nějaké cookie nebo případně ajaxem na serveru. Záleží na okolnostech.
snazimse
Profil
Monkeys:
GET nechci používat,ale jasně.

mimochodec:

Jojo díky moc,vyřešil jsem to ajaxem.

To je asi opravdu nejlepší řešení,ušetří to dost práce,bych řekl.
Stačí mi pár řádku,s ajaxem a funguje to všechno,aniž bych potřeboval
kopírovat tunu kodu.

Díky všem!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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