Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 2 цикла не хотят работать одновремено
 
 автор: Doorgen   (13.06.2010 в 09:31)   письмо автору
 
 

Уважаемые форумчане, подскажите в чем тут дело.
Выводит только первый цикл, 2рой не хочет... убираю первый выводится 2рой.

    var tableFlag = [
                    [1, 1, 427], 
                    [2, 1, 423], 
                    [3, 2, 927], 
                    [4, 2, 923],
                    [5, 3, 027], 
                    [6, 3, 023],                    
                    ];

var tableNumber = [
                    [1, "ÌÒÑ", "3.54 rur", 3.52], 
                    [1, "Áèëàéí", "3.54 rur", 3.52], 
                    [1, "ÌÒÑ", "3.54 rur", 3.52], 
                    [1, "Áèëàéí", "3.54 rur", 3.52], 
                    [1, "ÌÒÑ", "3.54 rur", 3.52], 
                    [1, "Áèëàéí", "3.54 rur", 3.52], 

                    [2, "ÌÒÑ", "5.54 rur", 5.52], 
                    [2, "Áèëàéí", "5.54 rur", 5.52], 
                    [2, "ÌÒÑ", "5.54 rur", 5.52], 
                    [2, "Áèëàéí", "3.54 rur", 5.52], 
                    [2, "ÌÒÑ", "5.54 rur", 5.52], 
                    [2, "Áèëàéí", "5.54 rur", 5.52], 
                                                            
                    [3, "Ìåãàôîí", 927, 1], 
                    [4, "ÂîëãàÒåëåêîì", 923, 1],
                    
                    [5, "Èíôîëàäà", 027, 1], 
                    [6, "Àèñò", 023, 1],                    
                    ];
         
function flags(id)
   {
       document.getElementById("cont2").innerHTML="";
       var i = 0;
       var td = 1;
       for(i=0; i<100; i++) 
       {
         if(td == 1) {var class1 = "t15"; class2 = "t13"; td = 2;}
         else {var class1 = "t13"; class2 = "t14"; td = 1;}
         if(id == tableNumber[i][0])
         {  
         document.getElementById("cont2").innerHTML+=("<tr> <td width='113' class='left "+class1+"'>"+tableNumber[i][1]+"</td><td width='235' class='"+class2+"'>"+tableNumber[i][2]+"</td><td width='219' class='"+class1+"'>"+tableNumber[i][3]+"</td></tr>");
         }
       }  
       document.getElementById("cont1").innerHTML="";
       var t = 0;
       for(t=0; t<100; t++) 
       {
         if(id == tableFlag[t][1])
         {  
         document.getElementById("cont1").innerHTML+=("<option value='"+tableFlag[t][0]+"'>"+tableFlag[t][2]+"</option>");
         }     
       }                    
   } 
   

  Ответить  
 
 автор: Doorgen   (13.06.2010 в 11:41)   письмо автору
 
   для: Doorgen   (13.06.2010 в 09:31)
 

Ребят, подскжаите, очень горит.... :(

  Ответить  
 
 автор: NSDaler   (13.06.2010 в 12:57)   письмо автору
 
   для: Doorgen   (13.06.2010 в 11:41)
 

вы зачем инициализируйте переменную t в цикле? достаточно один инициализировать t до цикла, а потом с ней работать, но это так замечание

  Ответить  
 
 автор: АЯ   (13.06.2010 в 15:31)   письмо автору
 
   для: Doorgen   (13.06.2010 в 09:31)
 

1. Зачем Вам ПУСТОЙ последний элемент в обоих массивах? Уберите последнюю запятую в обоих случаях.

2. Числа 023 и 027 браузер преобразует в 23 и 27. Если Вам надо именно с нулём, то закавычьте везде - '023', '027'.

3. Зачем гонять оба цикла по 100 раз (и обязательно возникнет ошибка, ибо членов массива меньше, чем 100), если элементарно можно определить длины массивов?

4. Зачем плодить лишнюю переменную td, если с помощью оператора % легко определяется четность/нечетность номера добавляемой строки?

5. Удалять и создавать строки следует методами deleteRow () и insertRow (), а не глумиться с помощью innerHTML, тем более, что в MSIE строки являются read only

6. Аналогично, опшены в селекте следует удалять/добавлять DOM-методами, а не грёбанным innerHTML.

Итак, окончательно:
var tableFlag = [
                [1, 1, 427],
                [2, 1, 423],
                [3, 2, 927],
                [4, 2, 923],
                [5, 3, '027'], //закавычить надо
                [6, 3, '023'] //нахрена здесь запятая была? & закавычить надо
                            ];

var tableNumber = [
                  [1, '&#204;&#210;&#209;', '3.54 rur', 3.52],
                  [1, '&#193;&#232;&#235;&#224;&#233;&#237;', '3.54 rur', 3.52],
                  [1, '&#204;&#210;&#209;', '3.54 rur', 3.52],
                  [1, '&#193;&#232;&#235;&#224;&#233;&#237;', '3.54 rur', 3.52],
                  [1, '&#204;&#210;&#209;', '3.54 rur', 3.52],
                  [1, '&#193;&#232;&#235;&#224;&#233;&#237;', '3.54 rur', 3.52],

                  [2, '&#204;&#210;&#209;', '5.54 rur', 5.52],
                  [2, '&#193;&#232;&#235;&#224;&#233;&#237;', '5.54 rur', 5.52],
                  [2, '&#204;&#210;&#209;', '5.54 rur', 5.52],
                  [2, '&#193;&#232;&#235;&#224;&#233;&#237;', '3.54 rur', 5.52],
                  [2, '&#204;&#210;&#209;', '5.54 rur', 5.52],
                  [2, '&#193;&#232;&#235;&#224;&#233;&#237;', '5.54 rur', 5.52],

                  [3, '&#204;&#229;&#227;&#224;&#244;&#238;&#237;', 927, 1],

                  [4, '&#194;&#238;&#235;&#227;&#224;&#210;&#229;&#235;&#229;&#234;&#238;&#236;', 923, 1],

                  [5, '&#200;&#237;&#244;&#238;&#235;&#224;&#228;&#224;', '027', 1], //закавычить надо

                  [6, '&#192;&#232;&#241;&#242;', '023', 1] //нахрена здесь запятая была? & закавычить надо
                                                          ];

function flags (id)
{
var tbl = document.getElementById ('cont2');
if (tbl.rows.length) for (var j = tbl.rows.length; j > 0; j--)
tbl.deleteRow (-1); //вот так ПРАВИЛЬНО удаляются строки таблицы - если они есть
 
for (var i = 0; i < tableNumber.length; i++) //именно length, а не взятая от балды сотня
   {
   if (i % 2) {var class1 = 't15', class2 = 't13'}
         else {var class1 = 't13', class2 = 't14'} //вот ТАК определяется четность/нечетность индекса/строки
   if (id == tableNumber [i] [0])
      {  
      var ro = tbl.insertRow (-1); //вот так ПРАВИЛЬНО добавляется в таблицу строка, а в неё - ячейки
      var ce = ro.insertCell (-1); with (ce) {width = '113'; className = 'left ' + class1; innerHTML = tableNumber [i] [1]}
      var ce = ro.insertCell (-1); with (ce) {width = '235'; className = class2; innerHTML = tableNumber [i] [2]}
      var ce = ro.insertCell (-1); with (ce) {width = '219'; className = class1; innerHTML = tableNumber [i] [3]}
      }
   }  

for (var slc = document.getElementById ('cont1'), j = slc.options.length - 1; j >= 0; j--)
slc.options [j] = null; //вот так ПРАВИЛЬНО удаляются опшены из селекта

for (var t = 0; t < tableFlag.length; t++)  if (id == tableFlag [t] [1]) //именно length, а не взятая от балды сотня
   {var opt = document.createElement ('option'); with (opt)
   {value = tableFlag [t] [0]; text = tableFlag [t] [2]}
   slc.options.add (opt); //вот так ПРАВИЛЬНО добавляются новые опшены в селект
   }
}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования