21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Annie
Profil
Do select-boxů mi chodí seznamy položek - jak můžu v JS nejlíp udělat, aby když přijde jen jediná položka, aby se automaticky vybrala bez nutnosti rozkliknutí?
Destiny_1
Profil
Dobrý den, mělo by stačit nastavit položce selected

<option value="polozka" selected>Položka</option>

a v JS by neměl být problém zkontrolovat jestli máte jednu položku ne?
Annie
Profil
No to první řešení nejde, protože ty položky tam vypsaný nikde nemám, chodí mi ze serveru...
Destiny_1
Profil
V jakém typu ? Lepší bude když pošlete ukázku?
Annie
Profil
Posílám to jako ajax...a přijde mi normálně číselník. Jediný co potřebuju a nevím, je jak napsat, že pokud přijde jen jedna položka, tak se vybere ta
Destiny_1
Profil
Pošlete tvar přímo toho "číselníku", nevím co si mám pod tím představit.
Keeehi
Profil
Destiny_1:
Pravděpodobně JSON pole.

Lepší bude když pošlete ukázku?
Annie rovnou živou ukázku prosím. Ušetří to spoustu času.
Dan Charousek
Profil
Annie:
Pokud je položka jediná, není třeba nic vybírat, zobrazí se jako jediná v selectboxu. Pokud řešíš tento problém, musí tam být ještě klasická -- Vyberte možnost-- položka. To se dá řešit snadno. Ve funkci, která zpracovává výsledky ajaxového volání stačí kontrolovat počet vrácených položek a na to zareagovat. Předpokládejme, že se vrací JSON data:

// ukázka je pro zjednodušení pomocí jQuery
$.get("ajax.php", function(data){
     var response = JSON.parse(data);
     if(response.length == 1) {
         // položka je jen jedna, odstraníme současné optiony ze seznamu a nahradíme novou
     } else {
        // položek je víc, v cyklu vložíme všechny položky
     }
});

Je to jen obecný nástřel, to jakým způsobem ve finále uděláš ajaxový dotaz nebo zpracování dat je na tobě.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0