Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подбор по чекбоксам 
:(
    Опции темы
GIK
Дата 25.3.2009, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: нет
Всего: 14



Доброго всем времени суток!
Подскажите кто нить, как лучше реализовать алгоритм подбора товара по чекбоксам? 
Напрмер есть товары, человек выбирает несколько груп товара и несколько типов. Мне нужно загрузить страничку в зависимости от выбранного товара

Так выглядит примерно под:
Код

<HTML>
<LINK href="foto/styles111.css" type=text/css rel=stylesheet>
<HEAD><TITLE>Магазин цифровых фотоаппаратов и видеокамер ВИРДЖИНИЯ</TITLE>
 
 <script language="javascript" type="text/javascript">

 function podbor(){
         
  if(document.getElementById('chek1').checked && document.getElementById('chek2').checked && document.getElementById('chek3').checked && 
document.getElementById('chek1_1').checked && document.getElementById('chek1_2').checked && document.getElementById('chek1_3').checked)
    {
     alert("All");
    }
 else if(document.getElementById('chek1').checked && document.getElementById('chek2').checked && document.getElementById('chek3').checked &&
     document.getElementById('chek1_1').checked && document.getElementById('chek1_2').checked)
   {
     alert("All & no 1_3");
    }    
 else if(document.getElementById('chek1').checked && document.getElementById('chek2').checked && document.getElementById('chek3').checked &&
     document.getElementById('chek1_1').checked && document.getElementById('chek1_3').checked)
   {
     alert("All & no 1_2");
    }  
  else if(document.getElementById('chek1').checked && document.getElementById('chek2').checked && document.getElementById('chek3').checked &&
     document.getElementById('chek1_2').checked && document.getElementById('chek1_3').checked)
   {
     alert("All & no 1_1");
    } 
  else if(document.getElementById('chek1').checked && document.getElementById('chek2').checked  &&
     document.getElementById('chek1_2').checked && document.getElementById('chek1_3').checked && document.getElementById('chek1_3').checked)
   {
     alert("All & no 3");
    } 
 else if(document.getElementById('chek1').checked && document.getElementById('chek3').checked &&
     document.getElementById('chek1_1').checked && document.getElementById('chek1_2').checked && document.getElementById('chek1_3').checked)
   {
     alert("All & no 2");
    }             
 else if(document.getElementById('chek2').checked && document.getElementById('chek3').checked && 
     document.getElementById('chek1_1').checked && document.getElementById('chek1_2').checked && document.getElementById('chek1_3').checked)
   {
     alert("All & no 1");
    }   
 else if(document.getElementById('chek1').checked && document.getElementById('chek2').checked && document.getElementById('chek3').checked && 
     document.getElementById('chek1_1').checked)
   {
     alert("chek1 & chek2 & chek3 & chek1_1");
   }          
  else if(document.getElementById('chek1').checked && document.getElementById('chek2').checked && document.getElementById('chek3').checked && 
     document.getElementById('chek1_2').checked)
   {
     alert("chek1 & chek2 & chek3 & chek1_2");
   }     
  else if(document.getElementById('chek1').checked && document.getElementById('chek2').checked && document.getElementById('chek3').checked && 
     document.getElementById('chek1_3').checked)
   {
     alert("chek1 & chek2 & chek3 & chek1_3");
   }   
  else if(document.getElementById('chek1').checked && document.getElementById('chek2').checked && 
     document.getElementById('chek1_2').checked && document.getElementById('chek1_3').checked)
   {
     alert("chek1 & chek2  & chek1_2 & chek1_3");
   } 

 //Далее в том же духе......


 }
 </script>
</HEAD>

<BODY bgcolor="#ffffff" bottomMargin=0 leftMargin=0 topMargin=0 rightMargin=0>

    
  <TABLE class=podbor><TBODY>
    <TR><TD class=podbor_probel_left> </TD>
          <TD class=podbor_checkbox> <input type=checkbox id=chek1> </TD><TD class=podbor>Marumi</TD><TD class=podbor_probel> </TD>
          <TD class=podbor_checkbox> <input type=checkbox id=chek2> </TD><TD class=podbor> Kenko </TD><TD class=podbor_probel> </TD>
          <TD class=podbor_checkbox> <input type=checkbox id=chek3> </TD><TD class=podbor> Vitakon </TD><TD class=podbor_probel> </TD></TR>
  
    <TR><TD class=podbor_probel_left> </TD>
        <TD class=podbor_checkbox> <input type=checkbox id=chek1_1> </TD><TD class=podbor>Защитные-ультрафиалетовые</TD><TD class=podbor_probel> </TD>
        <TD class=podbor_checkbox> <input type=checkbox id=chek1_2> </TD><TD class=podbor> Поляризационные </TD><TD class=podbor_probel> </TD>
        <TD class=podbor_checkbox> <input type=checkbox id=chek1_3> </TD><TD class=podbor> Смягчающие </TD><TD class=podbor_probel> </TD></TR>   
         
    <TR><TD class=podbor_probel> </TD><TD class=podbor_checkbox> <button onClick="podbor()">Выбор</button> </TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>            
    
  </TBODY></TABLE>
 
</BODY>
</HTML>


Но я бы хотел что нить поумнее, если кто знает или есть мысли пишите, буду рад любому ответу!


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
bars80080
Дата 25.3.2009, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



фзэфака, циклы спасут мир:

Код

function podbor() {
    var a = '', b = '', i, j, k = 0, txt = '';
    for(i = 0; i < 3; i++) {
        j = i + 1;
        if(document.getElementById('chek' + j).checked) { a += ' & check' + j; k++; }
        else { b += ' & no ' + j; k--; }
        if(document.getElementById('chek1_' + j).checked) { a += ' & check1_' + j; k++; }
        else { b += ' & no 1_' + j; k--; }
    }
    if(k >= 0) { txt = a.slice(3, a.length); }
    else { txt = 'All ' + b; }
    alert(txt);
}

PM MAIL WWW   Вверх
Soah
Дата 25.3.2009, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: 13
Всего: 54



bars80080, я немного поправлю твой код smile 
Код

function podbor() {
    var a = '';
    var k = 0;
    var i;
    var noIndex = 0;
    for(i = 1; i <= 3; ++i)
        if(document.getElementById('chek' + i).checked) { 
            a += ' & check' + i; 
            k++; 
        } else {
            noIndex = i;
        }
    
    for(i = 1; i <= 3; ++i)
        if(document.getElementById('chek1_' + i).checked) { 
            a += ' & check1_' + i; 
            k++; 
        } else {
            noIndex = "1_" + i;
        }
    
    if (!noIndex)
        txt = 'All';
    else if (k+1 == 6)
        txt = 'All & no ' + noIndex;
    else
        txt = a.slice(3, a.length);
        
    alert(txt);
}

PM MAIL   Вверх
GIK
Дата 27.3.2009, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: нет
Всего: 14



Спасибо большое ребята, помогли как всегда!!!



--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
GIK
Дата 27.3.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: нет
Всего: 14



Еще вопросик возник один (я верстальшик не опытный, не этим занимаюсь сейчас..) Как мне загружать теперь странички если я адрес компаную вот так:

Код

<HTML>
<LINK href="foto/styles111.css" type=text/css rel=stylesheet>
<style type="text/CSS">
 
</style>

<HEAD><TITLE>Магазин цифровых фотоаппаратов и видеокамер ВИРДЖИНИЯ</TITLE>
 
 <script language="javascript" type="text/javascript">


//для наводки на меню
 
 function f1(a, id, id2){
 if(a){ document.getElementById(id).style.background="#d9f7f5"; document.getElementById(id2).src="foto/ss2.gif";}
 else {document.getElementById(id).style.background="#ffffff";document.getElementById(id2).src="foto/ss1.gif";}

}
 
 function podbor(mm){
      
  var a='', b='', c='';
  var i=1; var g=0; 
  for(;i<=3;i++)
   {  
     if(document.getElementById('chek'+i).checked)
       { 
         a+=document.getElementById('chek'+i).value;
         g=1;  
       }
   } 
  for(i=1; i<=3; i++)  
    { 
      if(document.getElementById('chek_'+i).checked)
       { b+=document.getElementById('chek_'+i).value; 
         g=1;
       }           
    } 
  
   
    
  if(g==0) {alert("Вы не выбрали ни одного товара");}
   else {c="shopForFilters"+a+b+mm+'.htm';
   
   alert(c);
   }

// Как мне теперь загрузить "c" ???
 }
 </script>
</HEAD>

<BODY bgcolor="#ffffff" bottomMargin=0 leftMargin=0 topMargin=0 rightMargin=0>

    
  <TABLE class=podbor><TBODY>
    <TR><TD class=podbor_probel_left> </TD>
          <TD class=podbor_checkbox> <input type=checkbox id=chek1 value="Marumi"> Marumi </TD><TD class=podbor> 1 </TD><TD class=podbor_probel> </TD>
          <TD class=podbor_checkbox> <input type=checkbox id=chek2 value="Kenko"> Kenko </TD><TD class=podbor> 2</TD><TD class=podbor_probel> </TD>
          <TD class=podbor_checkbox> <input type=checkbox id=chek3 value="Vitakon">Vitakon </TD><TD class=podbor> 3 </TD><TD class=podbor_probel> </TD></TR>
  
    <TR><TD class=podbor_probel_left> </TD>
        <TD class=podbor_checkbox> <input type=checkbox id=chek_1 value="protect"> </TD><TD class=podbor>Защитные-ультрафиалетовые</TD><TD class=podbor_probel> </TD>
        <TD class=podbor_checkbox> <input type=checkbox id=chek_2 value="pol"> </TD><TD class=podbor> Поляризационные </TD><TD class=podbor_probel> </TD>
        <TD class=podbor_checkbox> <input type=checkbox id=chek_3 value="cvet"> </TD><TD class=podbor> Смягчающие </TD><TD class=podbor_probel> </TD></TR>   
         
    <TR><TD class=podbor_probel> </TD><TD class=podbor_checkbox> <button onClick="podbor('37mm')">Выбор</button> </TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>            
    
  </TBODY></TABLE>


</BODY>
</HTML>


Что лучше загружать через htps т.е.типа так например
http://shop.ru/magaz1/shopForFiltersMarumi...oVitakon37.html

или из папки на сервере, т.е. просто "magaz1/shopForFiltersMarumiKenkoVitakon37.htm"

???


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
bars80080
Дата 27.3.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(GIK @  27.3.2009,  13:01 Найти цитируемый пост)
// Как мне теперь загрузить "c" ???

Код

window.location.href = 'http://shop.ru/magaz1/' + c;

PM MAIL WWW   Вверх
GIK
Дата 27.3.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: нет
Всего: 14



СПАСБО!!!


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0872 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.