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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> КАК правильно "отпарсить" переменную, Нужна помощь 
:(
    Опции темы
GIK
Дата 5.9.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Все привет.
Народ помогите пожалуйта, прграмулька отказывается умножать число больше чем 30  smile  Не знаю почему, я по всякому пробовал ни чего не получается..... 
Код

<html> 
<head>
<script language="javascript" type="text/javascript">

//********************Подсчет цены на кружки
var kolvo=new Array(9,20,30);
var prise1=new Array(160,140,120);
var prise2=new Array(180,160,140);
var prise3=new Array(110,100,90);
var rub='руб'; var prob='';
 
 function kalc(){ var text1=document.getElementById("itog1");
                  var text2=document.getElementById("itog2");
                  var text3=document.getElementById("itog3"); 
 var val1=parseInt(document.getElementById("kolvo1").value);
 var val2=parseInt(document.getElementById("kolvo2").value)
 var val3=parseInt(document.getElementById("kolvo3").value);
 var priseItogforTyp1=parseInt();
 
 for(var q=0; q<3; q++){if(val1<=kolvo[q]){break;};}
 for(var w=0; w<3; w++){if(val2<=kolvo[w]){break;};}
 for(var e=0; e<3; e++){if(val3<=kolvo[e]){break;};}//Нашли кол-во
       
                                            
 //text1.value=parseInt((val1 * priseItogforTyp1)); 
 var it1=(val1 * prise1[q]); it1*=1;
 var it2=(val2 * prise2[w]); it2*=1;
 var it3=(val3 * prise3[e]); it3*=1; 
 text1.value=(it1)+prob+rub;
 text2.value=(it2)+prob+rub; 
 text3.value=(it3)+prob+rub;
}
</script>
</head>
<body bgcolor="#ffffff">
     
               <table width=100% border=1 class=tabLogotipPrise>      
               <tr><td width=50%>Сделайте свой заказ</td></tr>
               <tr class=gltr><td width=10%>Предлагаемые кружки</td><td width=10%>Кол-во</td><td>Сумма со скидкой</td></tr> 
               <tr><td width=10% class=TD1><A class=A1 href="" onClick="logotip(); return false;">Кружка белая</a></td><td width=10%><input value=1 size=7 onkeyup="kalc()" id="kolvo1"></td><td><input value='160 руб.'  id="itog1"></td></tr>
               <tr><td width=10% class=TD1><A class=A1 href="" onClick="logotip(); return false;">С одной стороны</a></td><td width=10%><input value=1 size=7 onKeyUp="kalc()" id="kolvo2"></td><td><input value='180 руб.' id="itog2"></td></tr>
               <tr><td width=10% class=TD1><A class=A1 href="" onClick="logotip(); return false;">С одной стороны</a></td><td width=10%><input value=1 size=7 onKeyUp="kalc()" id="kolvo3"></td><td><input value='110 руб.' id="itog3"></td></tr>
              </table>
        
</body>
</html>



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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

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



Код

var kolvo=new Array(9,20,30);

Не умножается на число больше kolvo[2]. Почему? А кто его знает. Хотя бы комментарии поставил или обрисовал в общем виде что здесь происходит.
PM WWW   Вверх
12345c
Дата 5.9.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



А до скольки надо? smile Поставь последнее число в массиве var kolvo=new Array(9,20,30); тем, которым надо, и он будет умножать до этого числа.

А по алгоритму, в нём получается, что если количество превысило максимальное (9,20,33), переменная q,w,e становится =4  и выходит за пределы индекса массива. Очевидно, что в массивах priseX надо вписать 4-е числа.

Код

var prise1=new Array(160,140,120,120);
var prise2=new Array(180,160,140,140);
var prise3=new Array(110,100,90,90);


Добавлено @ 13:29 
точнее, становится =3 , а не 4
PM WWW   Вверх
Avb
Дата 5.9.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Либо после 
Код

 for(var q=0; q<3; q++){if(val1<=kolvo[q]){break;};}
 for(var w=0; w<3; w++){if(val2<=kolvo[w]){break;};}
 for(var e=0; e<3; e++){if(val3<=kolvo[e]){break;};}//Нашли кол-во


добавить:
Код

if(q==3){q--;}       
if(w==3){w--;}       
if(e==3){e--;}       


Добавлено @ 13:55 
GIK, здесь напрашивается объектно-ориентированный подход  smile 
PM MAIL   Вверх
GIK
Дата 5.9.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата

А до скольки надо?  Поставь последнее число в массиве var kolvo=new Array(9,20,30); тем, которым надо, и он будет умножать до этого числа.

В чем логика, непонятно. 
Цитата

Очевидно, что в массивах priseX надо вписать 4-е числа.

Во зашибись  smile а.  

Я понимаю что уже традиция-создавать всеобщий хаос когда я задаю какой то вопрос.....
Какая все таки связь между максимальным числом массива var kolvo=new Array(9,20,30);
, если я умножаю значение  поля на значение массива prise1[q]  например???
То что есть связь с массивом kolvo, это я только сейчас заметил smile 
Теперь максимально значение = 79.
Код

<html> 
<head>
<script language="javascript" type="text/javascript">

//********************Подсчет цены на кружки
var kolvo=new Array(9,20,79);
var prise1=new Array(160,140,120);
var prise2=new Array(180,160,140);
var prise3=new Array(110,100,90);
var rub='руб'; var prob='';
 
 function kalc(){ var text1=document.getElementById("itog1");
                  var text2=document.getElementById("itog2");
                  var text3=document.getElementById("itog3"); 
 var val1=parseInt(document.getElementById("kolvo1").value);
 var val2=parseInt(document.getElementById("kolvo2").value)
 var val3=parseInt(document.getElementById("kolvo3").value);
 var priseItogforTyp1=parseInt();
 
 for(var q=0; q<3; q++){if(val1<=kolvo[q]){break;};}
 for(var w=0; w<3; w++){if(val2<=kolvo[w]){break;};}
 for(var e=0; e<3; e++){if(val3<=kolvo[e]){break;};}//Нашли кол-во
       
                                            
 //text1.value=parseInt((val1 * priseItogforTyp1)); 
 var it1=(val1 * prise1[q]); it1*=1;
 var it2=(val2 * prise2[w]); it2*=1;
 var it3=(val3 * prise3[e]); it3*=1; 
 text1.value=(it1)+prob+rub;
 text2.value=(it2)+prob+rub; 
 text3.value=(it3)+prob+rub;
}
</script>
</head>
<body bgcolor="#ffffff">
     
               <table width=100% border=1 class=tabLogotipPrise>      
               <tr><td width=50%>Сделайте свой заказ</td></tr>
               <tr class=gltr><td width=10%>Предлагаемые кружки</td><td width=10%>Кол-во</td><td>Сумма со скидкой</td></tr> 
               <tr><td width=10% class=TD1><A class=A1 href="" onClick="logotip(); return false;">Кружка белая</a></td><td width=10%><input value=1 size=7 onkeyup="kalc()" id="kolvo1"></td><td><input value='160 руб.'  id="itog1"></td></tr>
               <tr><td width=10% class=TD1><A class=A1 href="" onClick="logotip(); return false;">С одной стороны</a></td><td width=10%><input value=1 size=7 onKeyUp="kalc()" id="kolvo2"></td><td><input value='180 руб.' id="itog2"></td></tr>
               <tr><td width=10% class=TD1><A class=A1 href="" onClick="logotip(); return false;">С одной стороны</a></td><td width=10%><input value=1 size=7 onKeyUp="kalc()" id="kolvo3"></td><td><input value='110 руб.' id="itog3"></td></tr>
              </table>
        
</body>
</html> 



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


Шустрый
*


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

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



GIK, проблема в том, что, если введенное значение больше максимального в массиве kolvo, то после выполнения
Код

for(var e=0; e<3; e++){if(val3<=kolvo[e]){break;};}//Нашли кол-во

значение e будет равно 3. А максимальный индекс в массивах prise - 2 (0, 1, 2)
prise3[e] (==prise3[3])- неопределенное значение.
PM MAIL   Вверх
GIK
Дата 5.9.2006, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Все понятно, сглючил я, бывает smile 


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


 




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


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

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