Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2011, 20:41   #1
Eldrich
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 88
По умолчанию Улучшение скрипта

Код HTML:
<P align=center>
<SPAN style="COLOR: #ffd700; FONT-SIZE: 14pt"><EM>Преданность:</EM></SPAN><STRONG></STRONG><INPUT id=vx><BR>
<SPAN style="COLOR: #ffffff; FONT-SIZE: 14pt"><EM>Сытость:</EM></SPAN><INPUT id=vy><BR>
<SPAN style="COLOR: #0000cd; FONT-SIZE: 14pt"><EM>Минимальное значение параметра:</EM></SPAN> <INPUT id=vz><BR>
<INPUT style="WIDTH: 124px; HEIGHT: 34px" value=Расчёт size=7 type=button Расчёт onclick="calc()"> 

<script type="text/javascript">
var vx = document.getElementById('vx'),
vy = document.getElementById('vy'),
vz = document.getElementById('vz');
 
function calc() {

 var x = parseFloat(vx.value),
 y = parseFloat(vy.value),
 z = parseFloat(vz.value),
 a;
 if (isNaN(x) || isNaN(y) || isNaN(z)) alert('введите валидные числа');
  
else {
 a = 1.5 * z - (x * z / 100 + y * z / 200) + z;
alert(a);
};
};
</script></P>
Хотелось бы усовершенствовать данную программу. Т.е. Показатели x и y не вводились пользователем, а выбирались из выпадающего меню (числа от 0 до 100), Вместо ввода z было также выпадающее меню с шестью словами (например) и к каждому слову приравнивалось бы некоторое кол-во переменных, а результат расчёта выводился бы не в окошке, а на самой странице...

Пример: выбираю x = 100, у = 100, выбираю слово (любое из списка), к которому прикрепелны несколько различных переменных (13 например), затем каждая переменная (заданная числом), связанная с эти словом и показатели x и y входили в уравнение

a1 = 1.5 * (Значение первой переменной в слове) - (x * (Значение первой переменной в слове) / 100 + y * (Значение первой переменной в слове) / 200) + (Значение первой переменной в слове);

a2 = 1.5 * (Значение второй переменной в слове) - (x * (Значение второй переменной в слове) / 100 + y * (Значение второй переменной в слове) / 200) + (Значение второй переменной в слове);

и т.д. до 13 переменной, присвоенной к слову...


Для меня это реализовать очень трудно, так как я лишь начинающий "скриптёр)))))", но считаю, что это не так и трудно)

Помогите, кто сколько сможет)))
спасибо!
Eldrich вне форума Ответить с цитированием
Старый 14.02.2011, 02:08   #2
1ord
Create
Пользователь
 
Аватар для 1ord
 
Регистрация: 15.01.2011
Сообщений: 20
По умолчанию

PHP код:
<P align=center>
<
SPAN style="COLOR: #ffd700; FONT-SIZE: 14pt"><EM>Преданность:</EM></SPAN><STRONG></STRONG>
<
select id="vx"></select><BR>
<
SPAN style="COLOR: #ffffff; FONT-SIZE: 14pt"><EM>Сытость:</EM></SPAN><select id="vy"></select><BR><BR>
<
SPAN style="COLOR: #0000cd; FONT-SIZE: 14pt"><EM>Минимальное значение параметра:</EM></SPAN> <select id="vz"></select><BR><BR>
<
INPUT style="WIDTH: 124px; HEIGHT: 34px" value=Расчёт size=7 type=button Расчёт onclick="calc()"><BR><BR
<
SPAN style="COLOR: #0000cd; FONT-SIZE: 14pt"><EM id="calculation">Расчёт:</EM></SPAN><BR><BR>
<
script type="text/javascript">

//////
function creator(id,type,value,html)    //Создание списков        
 
{
  var 
parent document.getElementById(id) ;
  var 
child =  document.createElement(type)   ;
  
child.value value;
  
child.innerHTML html;
  
parent.appendChild(child)  ;                 
  }
function 
calc()    //расчёт по формуле
{
 
parseFloat(document.getElementById('vx').value);
 
parseFloat(document.getElementById('vy').value);
 
parseFloat(document.getElementById('vz').value);

if (
isNaN(x) || isNaN(y) || isNaN(z)) alert('введите валидные числа');
else 
document.getElementById('calculation').innerHTML 1.5 - (100 200) + z;// пишем результат в <EM id="calculation">Расчёт:</EM>
}
////////////

var z_array = {i:'1',mama:'2'papa:'3'};   // ассоциативный массив для 3-го списка
for(key  in z_array)  creator('vz','option',z_array[key],key); //Создание  3-го списка. Пример: key = mama , z_array[key] = 2
for(i=0;i<101;i++){           //создание 1-го и 2-го списка. i - количество элементов в списке
creator('vx','option',i,i);
creator('vy','option',i,i);
}
</script></P> 
Не бойся делать то, что не умеешь. Помни, ковчег был построен любителем. Профессионналы строили Титаник

Последний раз редактировалось 1ord; 14.02.2011 в 02:23.
1ord вне форума Ответить с цитированием
Старый 14.02.2011, 14:52   #3
Eldrich
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 88
По умолчанию

Спасибо огромное) это то, что мне нужно) Но здесь нету одной вещи)) к каждому имени должно присваеваться несколько переменных)
Ну вот например):
var z_array = {i:'1',mama:'2', papa:'3'}; // ассоциативный массив для 3-го списка

Здесь мы к i присваеваем "1", к mama "2" и т.д. А можно ли сделать так, что бы к i присвоилось несколько различных значений. Например "1", "2" и т.д., а рассчитывалось бы немного иным образом, например выводился результат расчёта при i равном 1, а ниже результат расчёта i равном 2)


а так, всё супер) спасибо огромное!)
Eldrich вне форума Ответить с цитированием
Старый 14.02.2011, 15:57   #4
1ord
Create
Пользователь
 
Аватар для 1ord
 
Регистрация: 15.01.2011
Сообщений: 20
По умолчанию

Получается двумерный массив .

PHP код:
var z_array = {
  
mama:[123],
  
i:[456],
  
papa:[789]

Получается не совсем практично,но так намного легче))
PHP код:
for (key in z_array)
{
 
alert(key);
 for(
value in z_array[key])
 {
  
alert(z_array[key][value]);
 }

Вот как перебирать в нём ключи(имена) и набор их значений ...

Думаю с функцией creator ,разобраться что как добавлять намного легче.
Не бойся делать то, что не умеешь. Помни, ковчег был построен любителем. Профессионналы строили Титаник

Последний раз редактировалось 1ord; 14.02.2011 в 16:26.
1ord вне форума Ответить с цитированием
Старый 14.02.2011, 17:06   #5
Eldrich
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 88
По умолчанию

Только первую часть понял... а вторую никак)
Eldrich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Улучшение кода megachuhancer Общие вопросы Delphi 5 27.01.2010 00:42
Улучшение SEO сайта. Нужен совет по выбору скрипта. Евгений_67 PHP 5 06.12.2008 06:12
Улучшение DBLookUpComboBox 1sal1 БД в Delphi 0 20.08.2008 16:11
Улучшение зрения Манжосов Денис :) Свободное общение 13 30.04.2008 13:21