Разные значения в зависимости от опций
Здравствуйте.
Помогите решить задачу. Имеется 4 различных параметра. Назовем их: 1. тип помещения 2. тип окна 3. тип профиля 4. Стоимость Тип помещения - панельный и кирпичный. Как сделать так, чтобы в зависимости от того какой выбран тип помещения калькулятор считал свои значения Стоимости. Реализовать нужно в таком виде: <table> <tbody> <tr> <td>Тип здания</td> <td> <select name="room" id="room"> <option value="0" selected="selected">Выбрать...</option> <option value="1">Панельный</option> <option value="2">Кирпичный</option> </select> </td> </tr> То есть как только выбрать тип дания - доступны для выбора становяться только заранее прописанные значения других параметров. В снизу чтобы все это считалось - стоимости где-то прописаны должны быть. Получиться должно так: выбрал тип здания - выбрал профиль, выбрал тип окна опс - цена снизу написана. |
Помогите, господа профессионалы.
|
Неужели это действитльно так сложно реализовать?
|
Цитата:
Или это уже сложно? :D |
Сложно:)
Может подскажешь в каком направлении думать, я бы сам сделал, просто не пойму с чего начать |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Ты напиши что не получается, код какой-то покажи. Похожие примеры уже были на форуме, или раздел работа
|
Цитата:
|
Цитата:
|
Ниже привожу код - там скорее всего только каркас, котрый нужно "оживить"ю
function Display(which) { co1=document.getElementById("constr1"); co2=document.getElementById("constr2"); co3=document.getElementById("constr3"); if (which=="constr1") co1.style.display="block"; else co1.style.display="none"; if (which=="constr2") co2.style.display="block"; else co2.style.display="none"; if (which=="constr3") co3.style.display="block"; else co3.style.display="none"; } <h2>Калькулятор стоимости</h2> <form name="calc"> <p>Выберите тип здания</p> <input type="radio" name="type" value="panel" checked>Панельный<br> <input type="radio" name="type" value="kirpich">Кирпичный <p>Выберите тип окна</p> <table border="0" cellpadding="0" cellspacing="0" width="500" height="1" id="maintbl"> <tbody> <tr valign="middle" height="1"> <td align="center" style="padding:0 5px;"> <img src="/img/1.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr1" checked onClick="Display('constr1');"> </td> <td align="center" style="padding:0 5px;"> <img src="/img/2.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr2" onClick="Display('constr2');"> </td> <td align="center" style="padding:0 5px;"> <img src="/img/3.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr3" onClick="Display('constr3');"> </td> </tr> </tbody> </table> <div id="constr1"> <img src="/img/solid_w.jpg" style="display:block;"> </div> <div id="constr2"> <img src="/img/solid_wv.jpg" style="display:none"> </div> <div id="constr3"> <img src="/img/solid_wv1.jpg" style="display:none"> </div> <p>Выберите тип профиля</p> <input type="radio" name="prifile_type" value="profile1" checked>Kraspan<br> <input type="radio" name="prifile_type" value="profile2">Veka<br> <input type="radio" name="prifile_type" value="profile3">Veka ProLine<br> </form> В скрипте который написан смысл вот какой - при выборе типа окна (constr1, 2, 3) Должен отображаться соответсвующий рисунок крупнее в дивах constr1, 2, 3. но у меня почему-то при выборе значения 2 и 3 крупная картинка пропадает, а при выборе constr1 появляется как положено. |
Цитата:
|
Да и сам код, вместе с контентом не фонтан...
Это тебе на анализы. :D <!DOCTYPE html> <html> <head> <!-- <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function Display(Obj) { var o=document.getElementById('img_all').getElementsByTagName('div'); var id=Obj.value; for (var i=0; i<o.length; i++) { o[i].style.display=(o[i].id==id)? 'block': 'none'; }; }; </script> </head> <body> <h2>Калькулятор стоимости</h2> <form name="calc"> <p>Выберите тип здания</p> <input type="radio" name="type" value="panel" checked>Панельный<br> <input type="radio" name="type" value="kirpich">Кирпичный <p>Выберите тип окна</p> <table border="0" cellpadding="0" cellspacing="0" width="500" height="1" id="maintbl"> <tbody> <tr valign="middle" height="1"> <td align="center" style="padding:0 5px;"> <img src="/img/1.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr1" checked onclick="Display(this);"> </td> <td align="center" style="padding:0 5px;"> <img src="/img/2.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr2" onclick="Display(this);"> </td> <td align="center" style="padding:0 5px;"> <img src="/img/3.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr3" onclick="Display(this);"> </td> </tr> </tbody> </table> <div id='img_all'> <div id="constr1"> <img src="http://javascript.ru/forum/images/smilies/smile.gif" /> </div> <div id="constr2" style="display:none"> <img src="http://javascript.ru/forum/images/smilies/mad.gif" /> </div> <div id="constr3" style="display:none"> <img src="http://javascript.ru/forum/images/smilies/laugh.gif" /> </div> </div> <p>Выберите тип профиля</p> <input type="radio" name="prifile_type" value="profile1" checked>Kraspan<br> <input type="radio" name="prifile_type" value="profile2">Veka<br> <input type="radio" name="prifile_type" value="profile3">Veka ProLine<br> </form> </body> </html> |
Цитата:
|
Цитата:
Просто вижу - действительно человек что-то ваяет... Значит имеет право на помощь/подсказку. Цитата:
|
Вот если бы ты мне подсказал как мне еще и разные стоимости забить в зависимости от того, что выбрано в самом начале - панельный или кирпичный. Было бы вообще GOOD
|
<script language="javascript"> function Display(which) { co1=document.getElementById("constr1"); co2=document.getElementById("constr2"); co5=document.getElementById("constr5"); if (which=="constr1") co1.style.display="block"; else co1.style.display="none"; if (which=="constr2") co2.style.display="block"; else co2.style.display="none"; if (which=="constr5") co5.style.display="block"; else co5.style.display="none"; } </script> <h2>Калькулятор стоимости</h2> <form name="calc"> <p>Выберите тип здания</p> <input type="radio" name="type" value="panel" checked>Панельный<br> <input type="radio" name="type" value="kirpich">Кирпичный <p>Выберите тип окна</p> <table border="0" cellpadding="0" cellspacing="0" width="500" height="1" id="maintbl"> <tbody> <tr valign="middle" height="1"> <td align="center" style="padding:0 5px;"> <img src="/img/1.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr1" checked onClick="Display('constr1');"> </td> <td align="center" style="padding:0 5px;"> <img src="/img/2.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr2" onClick="Display('constr2');"> </td> <td align="center" style="padding:0 5px;"> <img src="/img/5.jpg" border="0" height="105"> <br> <input type="radio" name="constr_type" value="constr5" onClick="Display('constr5');"> </td> </tr> </tbody> </table> <div id="constr1" style="display:block; margin: 20px 0;"> <img src="/img/solid_w.jpg"> </div> <div id="constr2" style="display:none; margin: 20px 0;"> <img src="/img/solid_w.jpg"> <img src="/img/solid_w.jpg" style="margin: 0 0 0 -10px;"> </div> <div id="constr5" style="display:none; margin: 20px 0;"> <img src="/img/solid_w.jpg" style="margin: 0 0 104px 0;"> <img src="/img/turnrew_b.jpg" style="margin: 0 0 0 -10px;"> </div> <p>Выберите тип профиля</p> <input type="radio" name="prifile_type" value="profile1" checked>Kraspan<br> <input type="radio" name="prifile_type" value="profile2">Veka<br> <input type="radio" name="prifile_type" value="profile3">Veka ProLine<br> </form> Получилось вот так. Следующий этап - это забить в коде стоимости. Они разные в зависимости от типа здания (панельный или кирпичный), типа профиля и типа окна. Я думаю главным критерием сделать тип здания. Мол если панельный, то такая цена ушла в сумму, а если кирпичный то другая. подскажите с чего начать. Мне кажется надо чего-то передавать в полях type="hidden"? |
Цитата:
|
Цитата:
Начинай использовать классы, вместо style... Определяй однотипные элементы... И про циклы не забывай! :D Все эти "перечисления случаев" сильно смахивает на ламерство. ;) |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Понятное дело было бы проще, если бы, например, в кирпичном доме было бы на х дороже. Тогда бы просто повесить на кнопку с кирпичным +х. но тут разное увеличение стоимости. Значит надо сделать так: Тип окна1 - Профиль 1: цена 1 Цена 2 Тип окна 1 - Профиль 2: цена 1 цена 2 Тип окна 1 - Профиль 3: цена 1 цена 2 Тип окна 2 - Профиль 1: цена 1 цена 2 и т.д. на бумаге могу сделать, а как это сделать в коде? |
Цитата:
|
У меня все это дело на Joomla - есть ли какие-то плагины для данной задачи? Я не нашел че-то
|
|
Спасибо добрый человек. Буду смотреть.
|
Цитата:
А у нас даже этого нет - т.ч. нам-то откуда знать? |
Часовой пояс GMT +3, время: 03:30. |