Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Un select de belea
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> HTML/JavaScript/CSS
Subiectul anterior :: Subiectul următor  
Autor Mesaj
Mascka



Data înscrierii: 01/Oct/2005
Mesaje: 1282
Locație: Braila

Trimis: Vin Ian 13, 2006 10:28 am    Titlul subiectului: Un select de belea  

Am gasit pe net un select destul de bun si util , l`am modificat cat am putut dar intampin o problema destul de dubioasa. Copiati codul intr`o pagina simpla htm si veti vedea ca totul functioneaza mai putin o categorie si anume "Desktop". daca se sterg ultimile 4 randuri de la array merge si categoria respectiva. are cineva idee cam care este cauza? si acum sa postez taota polologhia:

Cod:
<TABLE cellSpacing=0 cellPadding=0 width=100% border=1>
        <TBODY>
        <TR>
          <TD vAlign=top
            bgColor=#f2f2f2><BR>
            <CENTER>
            <SCRIPT language=JavaScript>
<!--

var catlist = new Array();

catlist[0] = new Array(1, 0, 'Audio', 1);
catlist[1] = new Array(2, 0, 'Business & Finance', 1);
catlist[2] = new Array(3, 0, 'Desktop', 1);
catlist[3] = new Array(4, 0, 'Games', 1);
catlist[4] = new Array(5, 0, 'Home & Education', 1);
catlist[5] = new Array(6, 0, 'Internet', 1);
catlist[6] = new Array(7, 0, 'Multimedia & Design', 1);
catlist[7] = new Array(8, 0, 'Software', 1);
catlist[8] = new Array(9, 0, 'Utilities', 1);
catlist[9] = new Array(10, 0, 'Web Authoring', 1);
catlist[10] = new Array(11, 1, 'Featured Track', 1);
catlist[11] = new Array(12, 1, 'Juke Boxe', 1);
catlist[12] = new Array(13, 1, 'Midi', 1);
catlist[13] = new Array(14, 1, 'Mp3 Search', 1);
catlist[14] = new Array(15, 1, 'Music Creation', 1);
catlist[15] = new Array(16, 1, 'Music Management', 1);
catlist[16] = new Array(17, 1, 'Players', 1);
catlist[17] = new Array(18, 1, 'Ripper & Encoders', 1);
catlist[18] = new Array(19, 1, 'Media Streaming', 1);
catlist[19] = new Array(20, 1, 'Utilities & Plug-ins', 1);
catlist[20] = new Array(21, 2, 'Aplications', 1);
catlist[21] = new Array(22, 2, 'Business & Finance', 1);
catlist[22] = new Array(23, 2, 'Databse Management', 1);
catlist[23] = new Array(24, 2, 'Inventory Systems', 1);
catlist[24] = new Array(25, 2, 'Legal', 1);
catlist[25] = new Array(26, 2, 'Personal Finance', 1);
catlist[26] = new Array(27, 2, 'Personal Info Managers', 1);
catlist[27] = new Array(28, 2, 'Presentation Tools', 1);
catlist[28] = new Array(29, 2, 'Project Management', 1);
catlist[29] = new Array(30, 2, 'Spreadsheets', 1);
catlist[30] = new Array(31, 2, 'Word Procesing', 1);
catlist[31] = new Array(32, 3, 'Cursors', 1);
catlist[32] = new Array(33, 3, 'Font Tools', 1);
catlist[33] = new Array(34, 3, 'Fonts', 1);
catlist[34] = new Array(35, 3, 'Icon Tools', 1);
catlist[35] = new Array(36, 3, 'Icons', 1);
catlist[36] = new Array(37, 3, 'Screensavers', 1);
catlist[37] = new Array(38, 3, 'Shell & Desktop', 1);
catlist[38] = new Array(39, 3, 'Skins', 1);
catlist[39] = new Array(40, 3, 'Start-up & Shutdown', 1);
catlist[40] = new Array(41, 3, 'Themes', 1);
catlist[41] = new Array(42, 3, 'Wallpapers', 1);
catlist[42] = new Array(43, 4, 'Actions', 1);
catlist[43] = new Array(44, 4, 'Adventure & RPG', 1);
catlist[44] = new Array(45, 4, 'Arcade', 1);
catlist[45] = new Array(46, 4, 'Cards Casino Lotery', 1);
catlist[46] = new Array(47, 4, 'Puzzle', 1);
catlist[47] = new Array(48, 4, 'Kids', 1);
catlist[48] = new Array(49, 4, 'Mods & Scenarious', 1);
catlist[49] = new Array(50, 4, 'Paches & Updates', 1);
catlist[50] = new Array(51, 4, 'Simulations', 1);
catlist[51] = new Array(52, 4, 'Sports', 1);
catlist[52] = new Array(53, 4, 'Strategy & War', 1);
catlist[53] = new Array(54, 4, 'Tools & Editors', 1);
catlist[54] = new Array(55, 5, 'Calendars & Planers', 1);
catlist[55] = new Array(56, 5, 'E-books & Literature', 1);
catlist[56] = new Array(57, 5, 'Foods & Beverage', 1);
catlist[57] = new Array(58, 5, 'Genealogy', 1);
catlist[58] = new Array(59, 5, 'Health & Nutrition', 1);
catlist[59] = new Array(60, 5, 'Hobbies', 1);
catlist[60] = new Array(61, 5, 'Home Inventory', 1);
catlist[61] = new Array(62, 5, 'Kids & Parenting', 1);
catlist[62] = new Array(63, 5, 'Language', 1);
catlist[63] = new Array(64, 5, 'Mathematics', 1);
catlist[64] = new Array(65, 5, 'Miscellaneous', 1);
catlist[65] = new Array(66, 5, 'Music', 1);
catlist[66] = new Array(67, 5, 'Religion & Spirituality', 1);
catlist[67] = new Array(68, 5, 'Science', 1);
catlist[68] = new Array(69, 5, 'Sports', 1);
catlist[69] = new Array(70, 5, 'Teaching Tools', 1);
catlist[70] = new Array(71, 6, 'Bowsers', 1);
catlist[71] = new Array(72, 6, 'Chat', 1);
catlist[72] = new Array(73, 6, 'Communications', 1);
catlist[73] = new Array(74, 6, 'Dial-up Connectivity', 1);
catlist[74] = new Array(75, 6, 'Download Managers', 1);
catlist[75] = new Array(76, 6, 'Email', 1);
catlist[76] = new Array(77, 6, 'FTP', 1);
catlist[77] = new Array(78, 6, 'File Sharing', 1);
catlist[78] = new Array(79, 6, 'ISPs', 1);
catlist[79] = new Array(80, 6, 'Newsreaders', 1);
catlist[80] = new Array(81, 6, 'Online Privacy', 1);
catlist[81] = new Array(82, 6, 'Tools & Editors', 1);
catlist[82] = new Array(83, 7, 'Animations', 1);
catlist[83] = new Array(84, 7, 'Authoring Tools', 1);
catlist[84] = new Array(85, 7, 'Fonts', 1);
catlist[85] = new Array(86, 7, 'Illustration', 1);
catlist[86] = new Array(87, 7, 'Image Editors', 1);
catlist[87] = new Array(88, 7, 'Media Management', 1);
catlist[88] = new Array(89, 7, 'Video', 1);
catlist[89] = new Array(90, 8, 'Active X', 1);
catlist[90] = new Array(91, 8, 'Compilers Interpreters', 1);
catlist[91] = new Array(92, 8, 'Components & Libraries', 1);
catlist[92] = new Array(93, 8, 'Database & Network', 1);
catlist[93] = new Array(94, 8, 'Debugging', 1);
catlist[94] = new Array(95, 8, 'IDEs & Coding', 1);
catlist[95] = new Array(96, 8, 'Java', 1);
catlist[96] = new Array(97, 8, 'Management & Distribution', 1);
catlist[97] = new Array(98, 8, 'Reference & Tutorials', 1);
catlist[98] = new Array(99, 8, 'Source Code', 1);
catlist[99] = new Array(100, 8, 'Tools & Utilities', 1);
catlist[100] = new Array(101, 9, 'Antivirus', 1);
catlist[101] = new Array(102, 9, 'Backup', 1);
catlist[102] = new Array(103, 9, 'Desktop & Enhancements', 1);
catlist[103] = new Array(104, 9, 'File & Disk Management', 1);
catlist[104] = new Array(105, 9, 'File Compresion', 1);
catlist[105] = new Array(106, 9, 'Font Tools', 1);
catlist[106] = new Array(107, 9, 'Icon Tools', 1);
catlist[107] = new Array(108, 9, 'Launchers', 1);
catlist[108] = new Array(109, 9, 'Network', 1);
catlist[109] = new Array(110, 9, 'Optimizers & Diagnostics', 1);
catlist[110] = new Array(111, 9, 'Printers', 1);
catlist[111] = new Array(112, 9, 'Screensavers', 1);
catlist[112] = new Array(113, 9, 'Security & Encryption', 1);
catlist[113] = new Array(114, 9, 'System Utilities', 1);
catlist[114] = new Array(115, 9, 'Uninstallers', 1);
catlist[115] = new Array(116, 10, 'HTML', 1);
catlist[116] = new Array(117, 10, 'Java', 1);
catlist[117] = new Array(118, 10, 'PHP', 1);
catlist[118] = new Array(119, 10, 'Reference & Tutorials', 1);
catlist[119] = new Array(120, 10, 'Servers', 1);
catlist[120] = new Array(121, 10, 'Site Management', 1);
catlist[121] = new Array(122, 10, 'Web Design', 1);
catlist[122] = new Array(123, 116, 'HTML Editors', 1);
catlist[123] = new Array(124, 116, 'HTML Compilers', 1);




function newList(numClear,field1,field2) {
  var frm = document.items
  var recursion_level = 2;

  if(numClear == 4) {
    clearCombo(frm.Select1)
    clearCombo(frm.Select2)
    clearCombo(frm.Select3)
    clearCombo(frm.Select4)
  }
  else if(numClear == 3) {
    clearCombo(frm.Select2)
    clearCombo(frm.Select3)
    clearCombo(frm.Select4)
  }
  else if(numClear == 2) {
    clearCombo(frm.Select3)
    clearCombo(frm.Select4)
  }
  else if(numClear == 1) {
    clearCombo(frm.Select4)
  }

  var tmpnamearr = new Array();
  var tmparr = new Array();
  j=0;
  loop_start = 0;
  loop_end = catlist.length;

  for(x=0;x<recursion_level;x++) {
    if(field1.options[field1.selectedIndex].value > catlist[loop_start+Math.round((loop_end-loop_start)/2)][1]) {

      loop_start = loop_start+Math.round((loop_end-loop_start)/2)
      if(field1.options[field1.selectedIndex].value == catlist[loop_start][1]) {
        if(loop_start-100 < 0) {
          loop_start = 0;
        }
        else {
          loop_start = loop_start-100;
        }
      }
      if(field1.options[field1.selectedIndex].value == catlist[loop_end-1][1]) {
        if(loop_end+100 > catlist.length) {
          loop_end = catlist.length;
        }
        else {
          loop_end = loop_end+100;
        }
      }
    }
    else {
      loop_end = loop_start+Math.round((loop_end-loop_start)/2)
      if(field1.options[field1.selectedIndex].value == catlist[loop_start][1]) {
        if(loop_start-100 < 0) {
          loop_start = 0;
        }
        else {
          loop_start = loop_start-100;
        }
      }
      if(field1.options[field1.selectedIndex].value == catlist[loop_end-1][1]) {
        if(loop_end+100 > catlist.length) {
          loop_end = catlist.length;
        }
        else {
          loop_end = loop_end+100;
        }
      }
    }
  }

  for(h=loop_start;h<loop_end;h++) {
    if(catlist[h] && field1.options[field1.selectedIndex].value == catlist[h][1]) {
      tmpnamearr[j] = catlist[h][2];                   
      tmparr[catlist[h][2]] = catlist[h][0];
      j++;
    }


  }

  tmpnamearr = tmpnamearr.sort();

  for(h=0;h<j;h++) {
    newOpt2 = tmpnamearr[h];
    newOpt = tmparr[newOpt2];
    field2.length=h+1;
    field2.options[h] = new Option(newOpt2,newOpt)
  }
  if(j == '0') {
   
   frm.categoria.value = field1.options[field1.selectedIndex].value;
    document.getElementById('submit_button').style.display='block';
    hide_all();
    for(y=2;y<(6-numClear);y++) {
      document.getElementById('box'+y).style.display='block'
    }
  }
  else {
    document.getElementById('submit_button').style.display='none';
    frm.categoria.value = '0';
    hide_all();
    for(y=2;y<(7-numClear);y++) {
      document.getElementById('box'+y).style.display='block'
    }
  }


}

function finale(inBox) {
  frm.categoria.value = inBox.options[inbox.selectedIndex].value
}

function clearCombo(elem){
  var i;
  for (i = elem.options.length; i >= 0; i--) elem.options[i] = null;
  elem.selectedIndex = -1;
  elem.options[0]= new Option("<-----------------------------","No Category Selected");
}

function hide_all(){
  var i;
  for(i=2;i<6;i++) document.getElementById('box'+i).style.display='none';
}
//-->

</SCRIPT>    <form name=items action="index.php?a=admin&amp;b=adauga" method="post">
           
            <TABLE cellSpacing=3 cellPadding=3 border=0>
              <TBODY>
               <TR height=120>
                <TD vAlign=center align=middle width="33%"><SELECT
                  class=selects id=SelectM style="WIDTH: 200px"
                  onclick="newList(4, document.items.SelectM,document.items.Select1)"
                  onchange="newList(4, document.items.SelectM,document.items.Select1)"
                  size=7 name=SelectM>
                  <OPTION value=1>Audio</OPTION>
                  <OPTION value=2>Business & Finance</OPTION>
                  <OPTION value=3>Desktop</OPTION>
                  <OPTION value=4>Games</OPTION>
                  <OPTION value=5>Home & Education</OPTION>
                  <OPTION value=6>Internet</OPTION>
                  <OPTION value=7>Multimedia & Design</OPTION>
                  <OPTION value=8>Software</OPTION>
                  <OPTION value=9>Utilities</OPTION>
                  <OPTION value=10>Web Authoring</OPTION>
                  </SELECT> </TD>
                   
                   
                <TD vAlign=center align=middle width="33%">
                  <DIV id=box2 style="DISPLAY: none"><SELECT class=selects
                  id=Select1 style="WIDTH: 200px"
                  onclick="newList(3, document.items.Select1,document.items.Select2)"
                  onchange="newList(3, document.items.Select1,document.items.Select2)"
                  size=7 name=Select1></SELECT> </DIV></TD>
                 
                 
                <TD vAlign=center align=middle width="33%">
                  <DIV id=box3 style="DISPLAY: none"><SELECT class=selects
                  id=Select2 style="WIDTH: 200px"
                  onclick="newList(2, document.items.Select2,document.items.Select3)"
                  onchange="newList(2, document.items.Select2,document.items.Select3)"
                  size=7 name=Select2></SELECT> </DIV></TD></TR>
              <TR>
                <TD vAlign=center align=middle width="33%">
                  <DIV id=box4 style="DISPLAY: none"><SELECT class=selects
                  id=Select3 style="WIDTH: 200px"
                  onclick="newList(1, document.items.Select3,document.items.Select4)"
                  onchange="newList(1, document.items.Select3,document.items.Select4)"
                  size=7 name=Select3></SELECT> </DIV></TD>
                 
                <TD vAlign=center align=middle width="33%">
                  <DIV id=box5 style="DISPLAY: none"><SELECT class=selects
                  id=Select4 style="WIDTH: 200px"
                  onclick=finale(document.items.Select4)
                  onchange=finale(document.items.Select4) size=7
                  name=Select4></SELECT> </DIV></TD></TR>
                 
              </TBODY></TABLE>
             
             
 <DIV id=submit_button style="DISPLAY: none">
             
<INPUT  type=text name="categoria"  value=""> <BR>

<INPUT name="submit" class=formbutton type=submit value="Adauga Resursa">
            </DIV></FORM><BR></CENTER>
       </TBODY></TABLE>
Sus  
humeniuc



Data înscrierii: 14/Ian/2006
Mesaje: 6

Trimis: Sâm Ian 14, 2006 12:40 am    Titlul subiectului:  

Incearca sa faci testul de la linia 170 :
if(field1.options[field1.selectedIndex].value >= catlist[loop_start+Math.round((loop_end-loop_start)/2)][1]) {
Sus  
Mascka



Data înscrierii: 01/Oct/2005
Mesaje: 1282
Locație: Braila

Trimis: Sâm Ian 14, 2006 11:51 am    Titlul subiectului:  

humeniuc a scris: Incearca sa faci testul de la linia 170 :
if(field1.options[field1.selectedIndex].value >= catlist[loop_start+Math.round((loop_end-loop_start)/2)][1]) {
sincer..nu am inteles maim nimik. Poti fi mai explicit?
Sus  
humeniuc



Data înscrierii: 14/Ian/2006
Mesaje: 6

Trimis: Sâm Ian 14, 2006 9:03 pm    Titlul subiectului:  

testul respectiv, cum il faci tu, e doar cu ">".
si se intampla ca pentru sectiunea pe care o cauti care are id = 3 testul sa nu se comporte cum trebuie.
fa testul cu ">=" si o sa functioneze. la mine a functionat.

dar oricum, algoritmul de selectie a subelementelor e destul de ciudat.

vezi cum merge la http://humeniuc.go.ro/test.html
Sus  
Mascka



Data înscrierii: 01/Oct/2005
Mesaje: 1282
Locație: Braila

Trimis: Lun Ian 16, 2006 9:34 am    Titlul subiectului:  

Multumesc foarte mult.. da merge...
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> HTML/JavaScript/CSS
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community