Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Mini jama funktsiooniga märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
rang
HV kasutaja
rang

liitunud: 21.03.2005




sõnum 27.07.2008 19:25:02 Mini jama funktsiooniga vasta tsitaadiga

Kasutan codeigniter frameworki.
Ise ei saa aru, mis sellel koodil viga on. See funktsioon peaks kuvama kategooria nimekirja ja keelama muudetava kategooria ja selle kategooria valima, mille alla muudetav kategooria kuulub kuulub.
Tulemus peaks umbes selline olema:

html:
  1. <option value=21 > Uus kategooria</option>
  2. <option value=22 >---- Uuele kategooriale alamkategooria</option>
  3. <option value=23 selected="selected">------ Veel üks kategooria</option>
  4. <option value=25 disabled="disabled">-------- Lisame ühe veel</option>
  5. <option value=24 > veel </option>


aga on hoopis selline:

html:
  1. <option value=21 > Uus kategooria</option>
  2. <option value=22 >---- Uuele kategooriale alamkategooria</option>
  3. <option value=23 >------ Veel üks kategooria</option>
  4. <option value=25 selected="selected"disabled="disabled">-------- Lisame ühe veel icon_smile.gif</option>
  5. <option value=24 > veel </option>


php:
  1. function tree_select( $selected=0, $disable=0, $category=0, $level=0){
  2.                 $query = $this->db->call_function('query',("SELECT id, parent_id, name, image FROM categories WHERE parent_id = $category"));
  3.                 $level++;
  4.                 $tree = array();
  5.                         while ($row = $this->db->call_function('fetch_assoc',$query)) {
  6.                                 if($row['parent_id'] > 0){
  7.                                         $separator = '';
  8.                                         $i = 0;
  9.                                         while($i < $level){
  10.                                                 $separator .= '--';
  11.                                                 $i++;
  12.                                         }
  13.                                 }else{
  14.                                         $separator = '';
  15.                                 }
  16.                                 if($selected == $row['parent_id']){
  17.                                         $select = 'selected="selected"';
  18.                                        
  19.                                 }else{
  20.                                         $select = '';
  21.                                 }                     
  22.                                 if($disable == $row['id'] && $disable <> 0){
  23.                                         $dis = 'disabled="disabled"';
  24.                                 }else{
  25.                                         $dis ='';
  26.                                 }
  27.                                 $this->cat_list .= "<option value=".$row['id']." ".$select.$dis.">".$separator." ".$row['name']."</option> \n";
  28.                                 $this->tree_select($selected, $disable, $row['id'],$level);
  29.                         }
  30.                         return $this->cat_list;
  31.  
  32.         }


$select muutuja jääks nagu "hiljaks".
Ei saa mina aru, miks ta niimoodi teeb icon_biggrin.gif
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 27.07.2008 20:07:56 vasta tsitaadiga

ei jää hiljaks

if($selected == $row['parent_id']) <-- id 23 on ju id25 menüüjupi parent ?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
rang
HV kasutaja
rang

liitunud: 21.03.2005




sõnum 27.07.2008 22:09:12 vasta tsitaadiga

On küll jah, aga ma ei saa aru, miks ta vale asja valib. Kasutan järgnevat rida, et funktsiooni kasutada(vahepeal on veel funktsioon, mis paneb <select> asja juurde veel.):

$this->category->category_select($data[0]['parent_id'], $data[0]['id'])

minu näite järgi:

$this->category->category_select('23', '25')

Funktsioon peaks keelama id 25 ja valima 23-nda (kõik on ju nagu õige icon_eek.gif ). Aga valib mõlemad. Kus see probleem on, ma ei saa aru icon_biggrin.gif

Keegi oskab aidata?
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 27.07.2008 22:21:57 vasta tsitaadiga

rang, eksid
id 25'e parent_id on ju 23

if($selected == $row['parent_id']) <-- function tree_select( $selected=0 <-- $this->category->category_select('23'

kui tahad et valiks 23'e, siis pead muutma seda if lauset et ta kontrolliks et $selected võrduks $row['id']'ga
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
rang
HV kasutaja
rang

liitunud: 21.03.2005




sõnum 27.07.2008 22:57:12 vasta tsitaadiga

Ahjaa icon_biggrin.gif
parent_id on mul juba antud, ja mina ajan ikka seda parent_id-d taga icon_biggrin.gif

Ise poleks sellepeale vist tulnudki (võibolla mitte enne homset õhtut) icon_biggrin.gif

Tänan abi eest icon_smile.gif
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Mini jama funktsiooniga
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.