Javascript.RU

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

Сделать downlist с выдачей результат в div
Всем доброго дня, столкнулся с такой проблемой, мне нужно что-бы после того как пользователь выбрал причину поломки ему выдало цену на ремонт и кнопку консультации. Как привязать событие onchange к последнему выбору, дабы выдавало результат в div. Знаний не много, но просто позарез нужно. Прошу извинить если не совсем правильно выразился.

var created = 0;

        function displayAccordingly {

            if (created == 1) {
                removeDrop();
            }

            //Вызов меню
            var mainMenu = document.getElementById('mainMenu');

            //Создания нового меню
            var whereToPut = document.getElementById('myDiv');
            var newDropdown = document.createElement('select');
			var onchange = document.createElement('displayResultat');
            newDropdown.setAttribute('id',"newDropdownMenu");
            whereToPut.appendChild(newDropdown);
        newDropdown.innerHTML= settings[s1.value].options;
        newDropdown.onchange=function(){
        result.innerHTML=settings[s1.value].cost[e.target.value];// это мы устанавливаем цену
        qq=result.parentNode.appendChild(document.createElement("a"));
        qq.href=settings[s1.value].url;

            if (mainMenu.value == "PC") { //Стационар
			
			var optionApple=document.createElement("option");
                optionApple.text="-------";
                newDropdown.add(optionApple,newDropdown.options[null]);

                
                var optionApple=document.createElement("option");
                optionApple.text="Не запускается";
                newDropdown.add(optionApple,newDropdown.options[null]);


                var optionBanana=document.createElement("option");
                optionBanana.text="Глючит Windows";
                newDropdown.add(optionBanana,newDropdown.options[null]);

            } else if (mainMenu.value == "NOTE") { //Ноутбук

                //
                var optionSpinach=document.createElement("option");
                optionSpinach.text="Не запускается";
                newDropdown.add(optionSpinach,newDropdown.options[null]);

                //
                var optionZucchini=document.createElement("option");
                optionZucchini.text="Чистка от пыли";
                newDropdown.add(optionZucchini,newDropdown.options[null]);
				
				} else if (mainMenu.value == "PLAN") { //Планшет
				var optionZucchini=document.createElement("option");
                optionZucchini.text="Прошивка";
                newDropdown.add(optionZucchini,newDropdown.options[null])
				var optionZucchini=document.createElement("option");
                optionZucchini.text="Ремонт";
                newDropdown.add(optionZucchini,newDropdown.options[null])
				
				
				} else if (mainMenu.value == "TEL") { //Телефон
				var optionZucchini=document.createElement("option");

                optionZucchini.text="Ремонт";
                newDropdown.add(optionZucchini,newDropdown.options[null])
				var optionZucchini=document.createElement("option");
                optionZucchini.text="Прошивка";
                newDropdown.add(optionZucchini,newDropdown.options[null])


            }

            created = 1

        }

        function removeDrop() {
            var d = document.getElementById('myDiv');

            var oldmenu = document.getElementById('newDropdownMenu');

            d.removeChild(oldmenu);
        }


<select class='btn btn-primary' id="mainMenu" onchange="displayAccordingly()">
    <option value="">--</option>
    <option value="PC">Компьютер</option>
    <option value="NOTE">Ноутбук</option>
    <option value="PLAN">Планшет</option>
    <option value="TEL">Телефон</option>
</select>
<div id="myDiv"></div>

<!-- Итог -->
<tr>
    <td width="250" class="td_result">ИТОГО:</td>
    <td class="td_result"><div id="result">0</div> руб.</td>
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2015, 14:28
Интересующийся
Отправить личное сообщение для bloodmoneys Посмотреть профиль Найти все сообщения от bloodmoneys
 
Регистрация: 01.06.2015
Сообщений: 12

Вот пример скрипта, но когда пытаюсь присоединить эту функцию к своему, либо цены не читает, либо создаёт новые подменю, но не удаляет.

<html>
<head><title>My Title!</title>
<script type="text/javascript">
   function updatePrice() {
      var price = document.getElementById("product").value;
      document.getElementById("price").innerHTML="<p>PRICE: " + price + "</p>";
   }
</script>
</head>
<body onload="updatePrice()">
<select id="product" onchange="updatePrice()">
<option id="PC" value="$10.00">PC</option>
<option id="TABLE" value="$5.00">TABLE </option>
<option id="NOTE" value="$1.00">NOTE </option>
<option id="PHONE" value="$2.00">PHONE</option>
</select>
<div id="price"><p>ЦЕНА: $XX.XX</p></div>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2015, 15:19
Интересующийся
Отправить личное сообщение для bloodmoneys Посмотреть профиль Найти все сообщения от bloodmoneys
 
Регистрация: 01.06.2015
Сообщений: 12

Получилось вот такое, все работает. Только вот не знаю, как теперь прописать второе меню и ему назначить цены?

<script type="text/javascript">
    var created = 0;
    
    function updatePrice(){ {
       
        var price = document.getElementById("product").value;
        document.getElementById("price").innerHTML="<p>PRICE: " + price + "</p>";

       var product = document.getElementById('product');

        //Создания нового меню
        var whereToPut = document.getElementById('myDiv');
        var newDropdown = document.createElement('select');
        newDropdown.setAttribute('id',"newDropdownMenu");
        whereToPut.appendChild(newDropdown);
       
    
        }
    if (created == 1) {
                removeDrop();
            }


    {

        created = 1

    }

    function removeDrop() {
        var d = document.getElementById('myDiv');

        var oldmenu = document.getElementById('newDropdownMenu');

        d.removeChild(oldmenu);
    }
    }
    </script>
<head><title>My Title!</title>
</head>
<body onload="updatePrice()">
<select id="product" onchange="updatePrice()">
    <option id="meat" value="$10.00">Meat ($10.00)</option>
    <option id="cheese" value="$5.00">Cheese ($5.00)</option>
    <option id="bread" value="$1.00">Bread ($1.00)</option>
    <option id="milk" value="$2.00">Milk ($2.00)</option>
    
</select>
<div id="myDiv"></div>
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2015, 15:23
Аспирант
Отправить личное сообщение для indeterm Посмотреть профиль Найти все сообщения от indeterm
 
Регистрация: 26.05.2015
Сообщений: 43

<html>
<head>
</head>
<body>


<select id="s">
<option value="foo">foo</option>
<option value="bar">bar</option>
<option value="baz">baz</option>
</select>
<div id="out"></div>

<script>

display=function(val){
 switch(val){
  case "foo": return "$100"
  case "bar": return "$200"
  case "baz": return "$300"
 }
}
s.onchange=function(){out.innerHTML=display(this.value)}
s.onchange() //set default

</script>

</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2015, 15:26
Интересующийся
Отправить личное сообщение для bloodmoneys Посмотреть профиль Найти все сообщения от bloodmoneys
 
Регистрация: 01.06.2015
Сообщений: 12

Это аналогия первому меню, если я не ошибаюсь. А мне именно нужно подменю первому и туда назначить цены.
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2015, 15:30
Аспирант
Отправить личное сообщение для indeterm Посмотреть профиль Найти все сообщения от indeterm
 
Регистрация: 26.05.2015
Сообщений: 43

bloodmoneys,
объясните попроще, вам нужно отображение соотношения выборки из 1 и второго меню?
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2015, 15:34
Интересующийся
Отправить личное сообщение для bloodmoneys Посмотреть профиль Найти все сообщения от bloodmoneys
 
Регистрация: 01.06.2015
Сообщений: 12

Пример: выбирает человек в первом дроплисте что у него сломался компьютер, ему выдаёт второй дроплист с причиной поломки он выбирает и к вот этой причине поломки привязать цену что-бы её выдавало в div.
Ответить с цитированием
  #8 (permalink)  
Старый 02.06.2015, 15:53
Интересующийся
Отправить личное сообщение для bloodmoneys Посмотреть профиль Найти все сообщения от bloodmoneys
 
Регистрация: 01.06.2015
Сообщений: 12

Вот пример скрипта
var qq; // кнопка этой вашей помощи
function displayAccordingly(e) {
    	
    settings={
        "PC": {
            options:"<option>сгарел куллер</option><option>олетела винда</option>...",
            cost:[200,1000]// ну и так далее
            , url:"pc.php" // это ссылка на этот вашь консультант
        },
        "table":{
            options:"<option>ломался экран</option><option>usb шник полетел</option>",
            cost:[500,200]
            , url:"tabs.php"
        }
    };
    var whereToPut = document.getElementById('myDiv');
    var newDropdown = document.createElement('select');
    newDropdown.id="newDropdownMenu";
    whereToPut.appendChild(newDropdown);
    newDropdown.innerHTML= settings[s1.value].options;
    newDropdown.onchange=function(e){
        result.innerHTML=settings[s1.value].cost[e.target.value];// это мы устанавливаем цену
        qq=result.parentNode.appendChild(document.createElement("a"));
        qq.href=settings[s1.value].url;
    }
}
Ответить с цитированием
  #9 (permalink)  
Старый 02.06.2015, 17:44
Интересующийся
Отправить личное сообщение для bloodmoneys Посмотреть профиль Найти все сообщения от bloodmoneys
 
Регистрация: 01.06.2015
Сообщений: 12

Вот что получилось, теперь проблема в том что не меняется цена, при выборе во втором дроплисте не происходит никакого события и я так понимаю из-за этого цены остается прежней. Подскажите пожалуйста как это можно попробывать исправить?
<script type="text/javascript">
    var created = 0;
    function menu(){
            var price = document.getElementById("product").value;
        document.getElementById("price").innerHTML="<p>PRICE: " + price + "</p>";
    
    
    }
    
    
    
    function updatePrice(){ {
    
       


       var mainMenu = document.getElementById('norm');

        //Создания нового меню
        var whereToPut = document.getElementById('myDiv');
        var newDropdown = document.createElement('select');
        newDropdown.setAttribute('id',"newDropdownMenu");
        newDropdown.setAttribute('onload',"menu()");
        newDropdown.setAttribute('onchange',"menu()");
        whereToPut.appendChild(newDropdown);
    
    
       
    
        }
        if (mainMenu.value == "PC") { //Стационар
    
    var optionApple=document.createElement("option");
                optionApple.text="-------";
                newDropdown.add(optionApple,newDropdown.options[null]);
			
			var optionApple=document.createElement("option");
                optionApple.text="чистка";
                optionApple.id="product";
                optionApple.value="50$";
                newDropdown.add(optionApple,newDropdown.options[null]);

    	var optionApple=document.createElement("option");
                optionApple.text="замена";
                optionApple.id="product";
                optionApple.value="150$";
                newDropdown.add(optionApple,newDropdown.options[null]);}

    if (created == 1) {
                removeDrop();
            }
    {

        created = 1

    }

    function removeDrop() {
        var d = document.getElementById('myDiv');

        var oldmenu = document.getElementById('newDropdownMenu');

        d.removeChild(oldmenu);
    }
    }
    </script>
<body onload="menu()" onload="updatePrice()">
<select id="norm" onchange="updatePrice()">
    <option id="PC" value="PC">Meat ($10.00)</option>
    <option id="cheese" value="$5.00">Cheese ($5.00)</option>
    <option id="bread" value="$1.00">Bread ($1.00)</option>
    <option id="milk" value="$2.00">Milk ($2.00)</option>
    
</select>
<div id="myDiv"></div>
<div id="price"><p>PRICE: $XX.XX</p></div>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 02.06.2015, 18:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от bloodmoneys
Подскажите пожалуйста как это можно
Вообще то правильнее бы не списки с ценами на клиенте среди которых выбор цен происходит, а клиент лишь уточняет услугу во втором списке, цену же (расчет неких цен) должен возвращать сервер.
То есть это связанные списки, а не меню, каждый из которых делает асинхронный запрос на сервер. Результатом запроса первого должен быть второй список, а результатом запроса второго цена.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так чтобы ajax возвращал результат? Rooner AJAX и COMET 7 28.06.2013 12:42
Проблемы с div обновлённым через (#id).load erlcat jQuery 4 03.03.2013 03:41
animate, всплывающий div box сделать по центру zero_mod jQuery 1 27.10.2010 00:23
div - затемнялка под div- кнопка, как сделать? webmonster2008 Общие вопросы Javascript 2 30.07.2010 17:09
Сделать Плавно выдвигающиеся DIV pavdin Общие вопросы Javascript 2 02.07.2010 16:17