Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.11.2010, 18:40
Интересующийся
Отправить личное сообщение для Resident Посмотреть профиль Найти все сообщения от Resident
 
Регистрация: 13.11.2010
Сообщений: 11

Помогите с умножением списка на чекбокс
в общем вот форма
http://icqzasms.ru/z/345.php
если надо пхп скажите
В общем, Уважаемые, подскажите как выводить стоимость без перезагрузки
там две формы, вторая зависимая от первой, при её выборе отображается стоимость, при выборе чекбокса умножается на определённый коэффициент, на пхп сделал, но изза второго сабмита приходится переделать на яве, кто подкинет хотябы примерчик буду признателен
Ответить с цитированием
  #2 (permalink)  
Старый 13.11.2010, 19:01
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.
Ответить с цитированием
  #3 (permalink)  
Старый 13.11.2010, 19:05
Интересующийся
Отправить личное сообщение для Resident Посмотреть профиль Найти все сообщения от Resident
 
Регистрация: 13.11.2010
Сообщений: 11

ну я и говорю, примерчик если можно по сути времени совсем нет чтоб всё читать по яве с начала(
Ответить с цитированием
  #4 (permalink)  
Старый 13.11.2010, 19:49
Интересующийся
Отправить личное сообщение для Resident Посмотреть профиль Найти все сообщения от Resident
 
Регистрация: 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&nbsp;раза&nbsp;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.
Ответить с цитированием
  #5 (permalink)  
Старый 13.11.2010, 19:53
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

1. Используйте специальные теги для форматирования кода
2.
Сообщение от Resident
вторая зависимая от первой
что должно быть во втором списке?

Последний раз редактировалось monolithed, 13.11.2010 в 19:56.
Ответить с цитированием
  #6 (permalink)  
Старый 13.11.2010, 20:28
Интересующийся
Отправить личное сообщение для Resident Посмотреть профиль Найти все сообщения от Resident
 
Регистрация: 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&nbsp;раза&nbsp;350');
Ответить с цитированием
  #7 (permalink)  
Старый 13.11.2010, 22:18
Интересующийся
Отправить личное сообщение для Resident Посмотреть профиль Найти все сообщения от Resident
 
Регистрация: 13.11.2010
Сообщений: 11

Всё сделал, закройте\делитните
Ответить с цитированием
  #8 (permalink)  
Старый 13.11.2010, 23:50
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 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.
Ответить с цитированием
  #9 (permalink)  
Старый 14.11.2010, 00:08
Интересующийся
Отправить личное сообщение для Resident Посмотреть профиль Найти все сообщения от Resident
 
Регистрация: 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&nbsp;раза&nbsp;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>&nbsp; отмечены поля, обязательные для ввода</div>
<br>Стоимость
     <table><tr><td id="result">

12 
 </td></tr></table>
Ответить с цитированием
  #10 (permalink)  
Старый 14.11.2010, 00:29
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Мне было сложно ориентироваться в вашем коде из-за того что он не оптимизирован, поэтому мне было проще заново все написать

Сообщение от Resident
в вашем варианте чекбокс в обратную сторону не работает
Я специально так сделал
Сообщение от Resident
в ие совсем он не работает
Чекбокс теперь и в IE работает, просто забыл, что onchange не заменил на onclick, в вашем случае нужно сделать тоже самое

Сообщение от Resident
так же ещё во втором списке у меня не числовые данные стоят а текстовые которые при выборе приравниваются к числу
Подправить это 2 минуты (дабавить еще один вложенный массив, а значения из value брать)

Последний раз редактировалось monolithed, 14.11.2010 в 00:32.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40
Как добавить тег в каждый элемент списка? elias jQuery 4 15.08.2010 15:19
Помогите новичку с выпадающим списком interest Элементы интерфейса 5 19.05.2010 13:15
Sortable, два связанных списка. Как один из них сделать неизменяемым? kvecxjo jQuery 1 30.03.2010 03:15
Добавить значения из одного списка в другой XAOC Events/DOM/Window 10 28.08.2008 13:18