Aktivni status za selectbox

Aktivni status za selectbox

offline
  • Pridružio: 07 Maj 2013
  • Poruke: 33

Imam selectbox multiple, znaci moguce je vise stavki izabrati i zapamtiti u bazu, zanima me kako mogu da dobijem nazad podatke pa da kad otvorim to u browseru da su opcije sve naznacene koje su u bazu upisane? Sve je izcitano sa foreach...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • PHP Developer
  • Pridružio: 02 Okt 2005
  • Poruke: 546

http://www.w3schools.com/tags/att_option_selected.asp



offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Ehhhhh težak zadatak. E sad ovako:
Daću ti jedno rešenje. Imam tabelu sa korisnicima - 'users' u njoj se nalazi kolona gde se upisuju selektovane kategorije i to izgleda ovako (2, 18, 25, 72, 146). Ovi brojevi su 'ID' vrednosti za sve selektovane kategorije.

U tabeli 'category' su mi upisane sve kategorije sajta. Kada korisnk pravi svoj profil on selektuje kategorije u kojim želi da se pronađe. To sa "foreach" snimam u bazu korisnika kao jedan niz u brojevima, kao što sam ti pokazao malopre (2, 18, 25, 72, 146).

E sad imao sam i ja isti problem kao ti i pronašao sam ovo rešenje koje radi perfektno:

<?php // $_GET['id'] - u ovom nizu ima svrhu da se pronađe korisnik po ID broju  // naprimer: (index.php?users=true&id=23) $array_user_category=mysql_query("SELECT `category` FROM `users` WHERE `id`='".$_GET['id']."'");    $array1=array();    while ($user_category = mysql_fetch_assoc($array_user_category))    {       $array1 = array_merge($array1, array_map('trim', explode(",", $user_category['category'])));    }    $category_query=mysql_query("SELECT * FROM `category` ORDER BY  `category`.`id` ASC");    if(mysql_num_rows($category_query)>=1)    {       $array_user_category = array($user_edit['category']);       $category='';       $k=1;       while($category_name=mysql_fetch_array($category_query))       {          $category.='<input type="checkbox" value="'.$category_name['id'].'" title="'.$category_name['name'].'" id="category'.$k.'" class="category" name="category[]"';          foreach($array1 as $a=>$x)          {             $category.=($array1[$a]==$category_name['id'])?' checked="checked" ':NULL;          }          $category.='><label for="category'.$k.'">'.$category_name['name'].'</label><br />';$k++;       }    } ?> <div style="padding:10px; display:block; height:200px; width:265px; overflow:auto;">                       <?php echo $category; ?> </div>
Počeću objašnjenje od iznutra ka napolje.
Znači ovde se izlistavaju sve kategorije koje ti se nalaze u bazi podataka, automatski kreiraš checkbox dugmad i pored njih naziv kategorija.
U tabeli korisnika (users) izlistavaš kolonu u koju si upisao selektovane kategorije (2, 18, 25, 72, 146) i onda njih izlistavaš.
Posle toga proveravaš gde se nalaze isti ID brojevi u kategorijama i njih obeležavaš kao checked="checked".

Nije ni lako a nije ni jednostavno.
Ovo radi perfektno a ako ti treba i kod za snimanje u bazu - reci.

Mislim da će ti ovo pomoći.

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

XZbitova skola Smile

Moze to i mnogo jednostavnije... recimo da su ti ID-evi svih kategorija vec u nizu $categories, a selektovane u $selected:

foreach ($categories as $category) {     $isSelected =  in_array($category['id'], $selected) ? 'checked="checked"' : '';     echo '<label><input type="checkbox" value="'.$category['id'].'" ' . $isSelected . '/>' . $category['name'] . '</label>'; }

Nikad, ali nikad, apsolutno nikad, ni pod kojim okolnostima, ni da ti zivot zavisi od toga, nemoj da napises ovo:

$array_user_category=mysql_query("SELECT `category` FROM `users` WHERE `id`='".$_GET['id']."'");

Objasnjenje uz mali (glupi) primer je na ovom linku.

offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Rastafarii ::XZbitova skola Smile

Moze to i mnogo jednostavnije... recimo da su ti ID-evi svih kategorija vec u nizu $categories, a selektovane u $selected:

foreach ($categories as $category) {     $isSelected =  in_array($category['id'], $selected) ? 'checked="checked"' : '';     echo '<label><input type="checkbox" value="'.$category['id'].'" ' . $isSelected . '/>' . $category['name'] . '</label>'; }

Nikad, ali nikad, apsolutno nikad, ni pod kojim okolnostima, ni da ti zivot zavisi od toga, nemoj da napises ovo:

$array_user_category=mysql_query("SELECT `category` FROM `users` WHERE `id`='".$_GET['id']."'");

Objasnjenje uz mali (glupi) primer je na ovom linku.


Volim tvoje kodove... Upravu si! Super je rešenje. Ovo je primer, kod mene ide sa proverom, dečku sam dao samo ugrubo objašnjenje, nadam se da će shvatiti i razumeti. Kod mene su svi ID kodovi u linku profiltrirani. Mogu napisati i taj kod ako treba. Samo se dozvoljava broj da prođe i ništa više, a to mi je upravo pomogla baš tvoj jedan kod od ranije pa sam pojednostavio funkciju koju koristim. Ziveli

Ko je trenutno na forumu
 

Ukupno su 947 korisnika na forumu :: 57 registrovanih, 6 sakrivenih i 884 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., aramis s, bestguarder, bigfoot, bladesu, BlekMen, bojankrstc, bokisha253, BRATORIII, cemix, cinoeye, darcaud, darios, darkojbn, Dimitrise93, Djokislav, DragoslavS, drimer, Dukelander, dule10savic, goxin, hyla, ikan, kobaja77, kubura91, kunktator, ljuba, mercedesamg, Mercury, mgolub, Mi lao shu, milenko crazy north, moldway, Nemanja.M, nenooo, nikoladim, NoOneEver Dreams, novator, opt1, pein, procesor, Recce, savaskytec, shaja1, slonic_tonic, solic, srbijaiznadsvega, Srle993, theNedjeljko, trajkoni018, uruk, vladaa012, vukovi, Webb, YugoSlav, Zimbabwe, šumar bk2