Помогите с умножением списка на чекбокс
в общем вот форма
http://icqzasms.ru/z/345.php если надо пхп скажите В общем, Уважаемые, подскажите как выводить стоимость без перезагрузки там две формы, вторая зависимая от первой, при её выборе отображается стоимость, при выборе чекбокса умножается на определённый коэффициент, на пхп сделал, но изза второго сабмита приходится переделать на яве, кто подкинет хотябы примерчик буду признателен |
Здравствуйте!
Судя по вашему сообщению, вы ну совсем не знаете javascript. Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. |
ну я и говорю, примерчик если можно по сути :) времени совсем нет чтоб всё читать по яве с начала(
|
вот набрасал ...
действую в верном направлении?) ... <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 никак не реагирует на изменения |
1. Используйте специальные теги для форматирования кода
2. Цитата:
|
во второй вот это
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'); |
Всё сделал, закройте\делитните
|
Что же вы нагородили то?
<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> |
Спасиб вам огромное, но ,извините, в вашем варианте чекбокс в обратную сторону не работает и в ие совсем он не работает. так же ещё во втором списке у меня не числовые данные стоят а текстовые которые при выборе приравниваются к числу.
я сделал, всё отлично как надо, Но оно(подсчёт) не работает ТОЛЬКО в 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> |
Мне было сложно ориентироваться в вашем коде из-за того что он не оптимизирован, поэтому мне было проще заново все написать :)
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 12:19. |