12.02.2014, 14:27
|
Новичок на форуме
|
|
Регистрация: 18.12.2013
Сообщений: 5
|
|
Вывести данные слайдера
Друзья, срочно требуется помощь. Вот несколько дней бьюсь над одной проблемой. Есть три слайдера, пробывал два варианта отсюда http://egorkhmelev.github.io/jslider/
и от сюда http://ionden.com/a/plugins/ion.rangeSlider/ . Вообщем сами они вроде работают.
Пример:
<div class="layout-slider">
<input id="CPUslider" type="slider" name="price" value="1" />
</div>
<script type="text/javascript">
jQuery("#CPUslider").slider({ from: 1, to: 20, step: 1, round: 1, scale: [1, '|', 5, '|' , '10', '|', 15, '|', 20], skin: "round_plastic"});
</script>
<div>Общая цена</div>
<div id="totalprice"></div>
<script type="text/javascript">
var vdscpuprice = $("#CPUslider").slider("value");
document.getElementById('totalprice').innerHTML = vdscpuprice;
</script>
Необходимо получить текущее значение от слайдера, и передать в общую цену, кодом что вверху он берет значение при подгрузке страницы. Вданном случае 1. и если значение слайдера меняется, не подгружает его. если сделать таким образом:
в сам слайдер прописать:
onstatechange: function( value ){
var vdscpuprice = $("#CPUslider").val();
document.getElementById('totalprice').innerHTML = vdscpuprice;
}
то выводит как нужно, НО! мне нужны суммировать значение трех слайдеров. Каким образом можно получить эти данные. Так же пробывал получить данные с input не получалось.
Заранее спасибо.
P.S.Сама задача, сделать три ползунка с определенными range , у каждого по значению высчитать сумму, в конце суммировать суммы трех слайдеров. Если есть решения купил бы.
Последний раз редактировалось SNEG, 12.02.2014 в 14:36.
|
|
12.02.2014, 14:58
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
SNEG, не судьба сделать три переменные и их суммировать
var sum = [0,0,0]
onstatechange: function( value ){
sum[0]=+value
document.getElementById('totalprice').innerHTML = sum[0]+sum[1]+sum[2]
}
|
|
12.02.2014, 15:07
|
Новичок на форуме
|
|
Регистрация: 18.12.2013
Сообщений: 5
|
|
Возможно и судьба,извиняюсь попробую внятней обьяснить:
<div class="layout-slider">
<input id="CPUslider" type="slider" name="price" value="1" /></br>
<input id="RAMslider" type="slider" name="price" value="1" /></br>
<input id="HDDslider" type="slider" name="price" value="1" />
</div>
<script type="text/javascript">
jQuery("#CPUslider").slider({ from: 1, to: 20, step: 1, round: 1, scale: [1, '|', 5, '|' , '10', '|', 15, '|', 20], skin: "round_plastic"});
jQuery("#RAMslider").slider({ from: 1, to: 16, step: 1, round: 1, scale: [1, '|', 4, '|' , '8', '|', 12, '|', 16], skin: "round_plastic"});
jQuery("#HDDslider").slider({ from: 1, to: 100, step: 1, round: 1, scale: [1, '|', 10, '|' , 20, '|', 30, '|', 40, '|', '50', '|', 60, '|', 70, '|', 80, '|', 90, '|', 100], skin: "round_plastic"});
</script>
<div>Общая цена</div>
<div id="totalprice"></div>
<script type="text/javascript">
var vdscpuprice = $("#CPUslider").slider("value");
var vdsramprice = $("#RAMslider").slider("value");
var vdshddprice = $("#HDDslider").slider("value");
document.getElementById('totalprice').innerHTML = (vdscpuprice + vdsramprice + vdshddprice);
</script>
Эта структура работает почти-что как надо за исключением того что значения vdscpuprice + vdsramprice + vdshddprice - изначальные, на которых подгружается страница и при изменении ползунка значения не меняются, меняются только у самого ползунка. Есть ли возможность как то их брать из текущих значений ползунка? тоесть если ползунок подвинули один из трех, автоматически значение поменялось и в 'totalprice".
Я так понимаю прописывать document.getElementById('totalprice').innerHTML = sum[0]+sum[1]+sum[2] нужно вне onstatechange? а var sum = [0,0,0] перед слайдерами?
Последний раз редактировалось SNEG, 12.02.2014 в 15:25.
|
|
12.02.2014, 15:47
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Сообщение от SNEG
|
Я так понимаю прописывать document.getElementById('totalprice').innerHTML = sum[0]+sum[1]+sum[2] нужно вне onstatechange? а var sum = [0,0,0] перед слайдерами?
|
да
|
|
12.02.2014, 17:51
|
Новичок на форуме
|
|
Регистрация: 18.12.2013
Сообщений: 5
|
|
Сделал, получилось:
<div class="layout-slider">
<input id="CPUslider" type="slider" name="price" value="1" /></br>
<input id="RAMslider" type="slider" name="price" value="1" /></br>
<input id="HDDslider" type="slider" name="price" value="1" />
</div>
<script type="text/javascript">
var vdscpu = 0;
var vdsram = 0;
var vdshdd = 0;
jQuery("#CPUslider").slider({ from: 1, to: 20, step: 1, round: 1, scale: [1, '|', 5, '|' , '10', '|', 15, '|', 20], skin: "round_plastic",
onstatechange: function( value ){
vdscpu = value}
});
jQuery("#RAMslider").slider({ from: 1, to: 16, step: 1, round: 1, scale: [1, '|', 4, '|' , '8', '|', 12, '|', 16], skin: "round_plastic",
onstatechange: function( value ){
vdsram = value}
});
jQuery("#HDDslider").slider({ from: 1, to: 100, step: 1, round: 1, scale: [1, '|', 10, '|' , 20, '|', 30, '|', 40, '|', '50', '|', 60, '|', 70, '|', 80, '|', 90, '|', 100], skin: "round_plastic",
onstatechange: function( value ){
vdshdd = value}
});
</script>
<div>Общая цена</div>
<div id="totalprice"></div>
<script type="text/javascript">
var vdscpuprice = vdscpu;
var vdsramprice = vdsram;
var vdshddprice = vdshdd;
document.getElementById('totalprice').innerHTML = (vdscpu + vdsram + vdshdd );
</script>
Но опять выводит только первые данные, при изменении данных на ползунке никаких изменений(
|
|
12.02.2014, 18:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
SNEG,
ну ёклмн строка 29 должна быть ещё в 13, 17, 21 -- иначе как вывод то данных сработает.
|
|
12.02.2014, 18:49
|
Новичок на форуме
|
|
Регистрация: 18.12.2013
Сообщений: 5
|
|
Рони спасибо огромное за внимание, но если вставляю эту строчку к примеру
<script type="text/javascript">
var vdscpu = 0;
var vdsram = 0;
var vdshdd = 0;
jQuery("#CPUslider").slider({ from: 1, to: 20, step: 1, round: 1, scale: [1, '|', 5, '|' , '10', '|', 15, '|', 20], skin: "round_plastic",
onstatechange: function( value ){
vdscpu=value;
document.getElementById('totalprice').innerHTML = vdscpu;
}
});
jQuery("#RAMslider").slider({ from: 1, to: 16, step: 1, round: 1, scale: [1, '|', 4, '|' , '8', '|', 12, '|', 16], skin: "round_plastic",
onstatechange: function( value ){
vdsram=value;
document.getElementById('totalprice').innerHTML = vdsram;
}
});
jQuery("#HDDslider").slider({ from: 1, to: 100, step: 1, round: 1, scale: [1, '|', 10, '|' , 20, '|', 30, '|', 40, '|', '50', '|', 60, '|', 70, '|', 80, '|', 90, '|', 100], skin: "round_plastic",
onstatechange: function( value ){
vdshdd=value
document.getElementById('totalprice').innerHTML = vdshdd;
}
});
</script>
вместо
Вроде думаешь чего такого передать в переменную. Весь интернет перерыл с запросами get value from input, get value from range и т.д. и т.п.((( и не получается.
Последний раз редактировалось SNEG, 12.02.2014 в 18:52.
|
|
12.02.2014, 19:31
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
SNEG,
НЕНАДО обращаться к тому чего нет -- либо ставите скрипт после <div id="totalprice"></div>
либо в любое место но после готовности страницы
$(window).load(function ()
{
var vdscpu = 0;
var vdsram = 0;
var vdshdd = 0;
document.getElementById('totalprice').innerHTML = (vdscpu + vdsram + vdshdd );
$("#CPUslider").slider({ from: 1, to: 20, step: 1, round: 1, scale: [1, '|', 5, '|' , 10, '|', 15, '|', 20], skin: "round_plastic",
onstatechange: function( value ){
vdscpu = +value;
document.getElementById('totalprice').innerHTML = (vdscpu + vdsram + vdshdd );
}
});
$("#RAMslider").slider({ from: 1, to: 16, step: 1, round: 1, scale: [1, '|', 4, '|' , 8, '|', 12, '|', 16], skin: "round_plastic",
onstatechange: function( value ){
vdsram = +value
document.getElementById('totalprice').innerHTML = (vdscpu + vdsram + vdshdd );
}
});
$("#HDDslider").slider({ from: 1, to: 100, step: 1, round: 1, scale: [1, '|', 10, '|' , 20, '|', 30, '|', 40, '|', 50, '|', 60, '|', 70, '|', 80, '|', 90, '|', 100], skin: "round_plastic",
onstatechange: function( value ){
vdshdd = +value
document.getElementById('totalprice').innerHTML = (vdscpu + vdsram + vdshdd );
}
});
})
Последний раз редактировалось рони, 12.02.2014 в 19:33.
Причина: опечатка
|
|
12.02.2014, 19:35
|
Новичок на форуме
|
|
Регистрация: 18.12.2013
Сообщений: 5
|
|
Огромнейшее спасибо!!!!))))
|
|
12.02.2014, 19:39
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
SNEG, на всякий
да у вас там с 1 отсчёт
var vdscpu = 0;
var vdsram = 0;
var vdshdd = 0;
|
|
|
|