13.11.2010, 18:40
|
Интересующийся
|
|
Регистрация: 13.11.2010
Сообщений: 11
|
|
Помогите с умножением списка на чекбокс
в общем вот форма
http://icqzasms.ru/z/345.php
если надо пхп скажите
В общем, Уважаемые, подскажите как выводить стоимость без перезагрузки
там две формы, вторая зависимая от первой, при её выборе отображается стоимость, при выборе чекбокса умножается на определённый коэффициент, на пхп сделал, но изза второго сабмита приходится переделать на яве, кто подкинет хотябы примерчик буду признателен
|
|
13.11.2010, 19:01
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Здравствуйте!
Судя по вашему сообщению, вы ну совсем не знаете javascript.
Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.
На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/
Задавайте конкретные вопросы по ходу дела.
|
|
13.11.2010, 19:05
|
Интересующийся
|
|
Регистрация: 13.11.2010
Сообщений: 11
|
|
ну я и говорю, примерчик если можно по сути времени совсем нет чтоб всё читать по яве с начала(
|
|
13.11.2010, 19:49
|
Интересующийся
|
|
Регистрация: 13.11.2010
Сообщений: 11
|
|
вот набрасал ...
действую в верном направлении?)
...
<script>
var Франция = Array('1 раз 10р.', '1 раз 10р.', '2 раза 40', '3 раза 50');var Россия = Array('1 раз 12р.', '2 раза 240 ТЕСТ','3 раза 250');var Турция = Array('2 раза 2140','3 раза 2150');var Германия = Array('2 раза 340','3 раза 350');
function showNames(v){
var mas = eval(v);
var el = document.getElementById('names');
while(el.childNodes.length>0){
el.removeChild(el.childNodes[el.childNodes.length-1]);
}
for(var i=0;i<mas.length;i++){
var opt = document.createElement("option");
opt.innerHTML=mas[i];
el.appendChild(opt);
}
}
// выше первая часть кода формирующая зависимый список var oplata = document.getElementById('names');
var oplata = document.getElementById('names');
var strana = document.getElementById('level');
function getCost(frm) {
var rez = 0;
var t = 6663;
var norez = 0;
if (oplata == "2 раза 240 ТЕСТ" && strana == "Россия") {t=1};
if (oplata == "3 раза 250" && strana == "Россия") {t=250};
if (oplata == "1 раз 12р." && strana == "Россия") {t=12};
if (oplata == "1 раз 10р." && strana == "Франция") {t=10};
if (oplata == "2 раза 40" && strana == "Франция") {t=40};
if (oplata == "3 раза 50" && strana == "Франция") {t=50};
if (oplata == "2 раза 2140" && strana == "Турция") {t=2140};
if (oplata == "3 раза 2150" && strana == "Турция") {t=2150};
if (oplata == "2 раза 340" && strana == "Германия") {t=340};
if (oplata == "3 раза 350" && strana == "Германия") {t=350};
norez = t;
rez = 2*t;
if (frm.dop.checked == true) {document.getElementById('result').innerHTML = rez }else{ document.getElementById('result').innerHTML = norez};
}
</script>
</head>
<body onload="showNames('Франция')">
<form method="GET" name="formaa" id="txt" class="application" accept-charset="utf-8" action="" >
<select name="strana" id="level" onchange="showNames(this.value); getCost(this.form)">
<option value="Россия">Россия</option>
<option selected value="Франция">франция</option>
<option value="Турция">турция</option>
<option value="Германия">германия</option>
</select>
<select name="cena" id="names" onChange="getCost(this.form)">
</select>
<input type="checkbox" name="dop" id="checkbox_0" value="0.2" onChange="getCost(this.form)" checked> Записывать звонки?<br>
<br>Стоимость
</form><table><tr><td id="result"></td></tr></table>
...
вроде всё изменяется как надо но переменная t никак не реагирует на изменения
Последний раз редактировалось Resident, 13.11.2010 в 21:09.
|
|
13.11.2010, 19:53
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
1. Используйте специальные теги для форматирования кода
2.
Сообщение от Resident
|
вторая зависимая от первой
|
что должно быть во втором списке?
Последний раз редактировалось monolithed, 13.11.2010 в 19:56.
|
|
13.11.2010, 20:28
|
Интересующийся
|
|
Регистрация: 13.11.2010
Сообщений: 11
|
|
во второй вот это
var Франция = Array('1 раз 10р.', '1 раз 10р.', '2 раза 40', '3 раза 50');var Россия = Array('1 раз 12р.', '2 раза 240 ТЕСТ','3 раза 250');var Турция = Array('2 раза 2140','3 раза 2150');var Германия = Array('2 раза 340','3 раза 350');
|
|
13.11.2010, 22:18
|
Интересующийся
|
|
Регистрация: 13.11.2010
Сообщений: 11
|
|
Всё сделал, закройте\делитните
|
|
13.11.2010, 23:50
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Что же вы нагородили то?
<script type="text/javascript">
window.onload = function(){
var array = [['1501', '1504', '1507'],
['1502', '1505', '1508'],
['1503', '1506', '1509']];
var select1 = document.getElementsByTagName('select')[0];
var select2 = document.getElementsByTagName('select')[1];
var input1 = document.getElementsByTagName('input')[0];
var span = document.getElementsByTagName('span')[0];
select1.onchange = function(){
select2.length = 0
for(var i=0; i<this.length; i++){
var options = document.createElement("option");
options.innerHTML = array[i][this.selectedIndex-1];
select2.appendChild(options);
span.innerHTML = select2.options[select2.selectedIndex].innerHTML;
input1.checked = false;
}
};
select2.onchange = function(){
for(var i=0; i<this.length; i++){
span.innerHTML = this.options[this.selectedIndex].innerHTML;
}
input1.checked = false;
};
input1.onclick = function(){
if(span.innerHTML>0){
span.innerHTML = (this.checked == true) ? 1500 + parseInt(span.innerHTML, 10) : 0;
}
};
};
</script>
<style type="text/css">
select, input {
float: left;
}
</style>
<form name="forma1" action="" method="post">
<select>
<option selected="selected" disabled="disabled" value="0">- - выберите - - </option>
<option value="1">Москва</option>
<option value="2">С. Петербург</option>
<option value="3">Челябинск</option>
</select>
</form>
<form name="forma2" action="" method="post">
<select>
<option selected="selected" disabled="disabled" value="0">- - выберите - - </option>
</select>
</form>
<form name="forma3" action="" method="post">
<input type="checkbox" />
</form>
<div>Стоимость: <span>0</span>р.</div>
Последний раз редактировалось monolithed, 14.11.2010 в 02:30.
|
|
14.11.2010, 00:08
|
Интересующийся
|
|
Регистрация: 13.11.2010
Сообщений: 11
|
|
Спасиб вам огромное, но ,извините, в вашем варианте чекбокс в обратную сторону не работает и в ие совсем он не работает. так же ещё во втором списке у меня не числовые данные стоят а текстовые которые при выборе приравниваются к числу.
я сделал, всё отлично как надо, Но оно(подсчёт) не работает ТОЛЬКО в IE
Прошу помочь в этом нелёгком деле
вот мой код
<script>
var Франция = Array('1 раз 10р.', '2 раза 40','3 раза 50');var Россия = Array('1 раз 12р.', '2 раза 240 ТЕСТ','3 раза 250');var Турция = Array('2 раза 2140','3 раза 2150');var Германия = Array('2 раза 340','3 раза 350');
function showNames(v){
var mas = eval(v);
var el = document.getElementById('names');
while(el.childNodes.length>0){
el.removeChild(el.childNodes[el.childNodes.length-1]);
}
for(var i=0;i<mas.length;i++){
var opt = document.createElement("option");
opt.innerHTML=mas[i];
el.appendChild(opt);
}
}
function getCost(frm) {
var oplata = document.getElementById('names').value ;
var strana = document.getElementById('level').value ;
var rez = 0;
var norez = 0;
var t = 0;
if (oplata == "2 раза 240 ТЕСТ" && strana == "Россия") {t=1};
if (oplata == "3 раза 250" && strana == "Россия") {t=250};
if (oplata == "1 раз 12р." && strana == "Россия") {t=12};
if (oplata == "1 раз 10р." && strana == "Франция") {t=10};
if (oplata == "2 раза 40" && strana == "Франция") {t=40};
if (oplata == "3 раза 50" && strana == "Франция") {t=50};
if (oplata == "2 раза 2140" && strana == "Турция") {t=2140};
if (oplata == "3 раза 2150" && strana == "Турция") {t=2150};
if (oplata == "2 раза 340" && strana == "Германия") {t=340};
if (oplata == "3 раза 350" && strana == "Германия") {t=350};
norez = t;
rez = 2*t;
if (frm.dop.checked == true) {document.getElementById('result').innerHTML = rez }else{ document.getElementById('result').innerHTML = norez};}
</script>
</head>
<body onload="showNames('Россия')">
<form method="GET" name="formaa" id="txt" class="application" accept-charset="utf-8" action="http://icqzasms.ru/z/oplata.php" >
<select name="strana" id="level" onchange="showNames(this.value); getCost(this.form)">
<option value="Россия">Россия</option>
<option value="Франция">франция</option>
<option value="Турция">турция</option>
<option value="Германия">германия</option>
</select>
<select name="cena" id="names" onChange="getCost(this.form)">
</select>
<input type="checkbox" name="dop" id="checkbox_0" value="yes" onChange="getCost(this.form)" > Записывать звонки?<br>
<div id=over_form><font color=#ff0000>*</font> отмечены поля, обязательные для ввода</div>
<br>Стоимость
<table><tr><td id="result">
12
</td></tr></table>
|
|
14.11.2010, 00:29
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Мне было сложно ориентироваться в вашем коде из-за того что он не оптимизирован, поэтому мне было проще заново все написать
Сообщение от Resident
|
в вашем варианте чекбокс в обратную сторону не работает
|
Я специально так сделал
Сообщение от Resident
|
в ие совсем он не работает
|
Чекбокс теперь и в IE работает, просто забыл, что onchange не заменил на onclick, в вашем случае нужно сделать тоже самое
Сообщение от Resident
|
так же ещё во втором списке у меня не числовые данные стоят а текстовые которые при выборе приравниваются к числу
|
Подправить это 2 минуты (дабавить еще один вложенный массив, а значения из value брать)
Последний раз редактировалось monolithed, 14.11.2010 в 00:32.
|
|
|
|