Autor Zpráva
jefitto44
Profil
Mámv ytovrené checkboxy z údajov, ktoré si ťahám z databázy
$manufSelect="SELECT sk_name, name_seo FROM ".TABLE_PREFIX."manufacturer WHERE 1";
        $manufQuery=mysql_query($manufSelect);
        while($rowManuf=mysql_fetch_assoc($manufQuery)) {
            $all.= '<input type="checkbox" name="manuf[]" value="'.$rowManuf["name_seo"].'"'
            .((array_search($rowManuf["name_seo"], $navigateArrayUrlWithoutBase)==FALSE)? "":"checked").'>'.$rowManuf["sk_name"].'<br>';
        }

Vyzerá to nejako takto... vyberiem name a seo_name z databázy, prebehnem cez cyklus a ku každému vypíšem hodnoty. To je vpoho. V poho ale nie je posledný riadok kódu. Nejako takto sa snažím zistiť, či checkbox má byť checked, alebo nemá. A nedarí sa mi
((array_search($rowManuf["name_seo"], $navigateArrayUrlWithoutBase))? "":"checked")
Skúsil som použiť array_search, pričom $rowManuf je seo name daného výrobcu a navigateArrayUrlWithoutBase je URL adresa, ktorá by mala byť ako pole. V nej teda je stranka.sk/daco/daco-ine/zas-daco-ine/... a v tomto ja chcem nájsť či je tam seo-name toho-ktorého checkboxu, aby som ho vedel začekovať, alebo nie. Nijako mi to však nefunguje... Zrejme preto, že rovnaký príznak môže byť ďalšie pole s viacerými hodnotami. Tuším sa to volá 3D pole. V takom prípade sa mi to asi nepodarí nájsť? Musel by som ešte vojsť do Ďalšieho poľa, čo je bordel. Napadlo ma teda aj niečo takéto, vlastne to bolo ako pôvodné riešenie
.((strpos(implode(",", $navigateArrayUrlWithoutBase), $RowTypeWatch["name_seo"])==FALSE)? "":"selected").

V prvom rade implodujem $navigateArray...Base na string s čiarkami. A následne pomocou strpos hľadám, či sa tá daná vec v reťazci nachádza. Všetko by to bolo skvelé, až na to, že prvý príznak mi to vždy vynechá. To asi preto, že strpos pri zhode na prvej položke zaznamená pozíciu 0, čo je asi FALSE? Skúsil som to osrať tým, že som za strpos pridal +1, to mi však všetky falsy automaticky urobí true... som z toho už zúfalý. Vedel by niekto pomôcť?


Napokon som to osral tak, že som pred impode pridal reťazec znakov.
.((strpos("znak, ".implode(",", $navigateArrayUrlWithoutBase), $RowTypeWatch["name_seo"])==FALSE)? "":"selected").

A pomohlo to ;)
Icka
Profil *
A co takto?

$navigateArrayUrlWithoutBase = array( předpokládám že parametry URL );

."(@in_array($rowManuf["name_seo"], $navigateArrayUrlWithoutBase)?" checked":"").
Joker
Profil
Icka:

K čemu ten zavináč před in_array?
Potlačování chybových hlášek obecně není dobrý nápad, navíc zrovna in_array snad sám o sobě ani žádné chyby negeneruje.
jefitto44
Profil
Konečne som sa dozvedel, načo ten zavinač slúži :D

Nemohol som použiť in array... mal som napr. dve hodnoty, ktoré po jedno implode sa správali ako jedna položka poľa... teda som hľadal napr. string naramkove v položke poľa naramkove,nastenne a to mi hadzalo vždy false

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:

0