Перейти к содержимому



Получение данных из блока (jquery)

#1 Kdes70

Kdes70
  • Пользователь
  • 55 сообщений
  • Репутация: 0
0

Отправлено 27 Октябрь 2013 - 18:18

Здравствуйте уважаемые форумчане!!!
Помогите найти решение и добить скрипт который уже неделю не дает мне покоя
делаю калькулятор банкетного меню
принцип прост выводится список блюд
фото, название, вес порции, цена, и текстовое поле (input) где пользователь указывает количество порций.

и с помощью js подсчитывается общая сумма
вот картинка для наглядности !!!))
так вот в чем суть моей проблемы
как только пользователь ввел количество порций нужно чтобы в боковом блоке выводился список названий выброных уже блюд

на даный момент имею только код по подсчету стоимости а как дальше действовать не знаю совсем недавно принялся за изучение Js

друзья помогите кто чем сможет! заранее благодарю!!!!

вот пример то что хочу получить http://www.burjui-cl...sschitat-banket


malaziaj.ru calculator.png


вот код JS
// JavaScript Document
$(document).ready(function() {
//ÍåìÍîãî îôîðìëåÍèÿ â ñòèëå çåáðû
// $("#calculate").find("tr:odd").css({"background":"#fbdd59", "opacity":"0.8"});
//Указываем по нажатию на какой элемент должны открыватся подменю
    $("#calculator > li > div").click(function(){
	    if(false == $(this).next().is(':visible')) {
		    $('#calculator ul').slideUp(280);
	    }
	    $(this).next().slideToggle(280);
    });
    //$('#calculator ul:eq(0)').show();
//волшебная функция
		    function _parseInt(n) {
				 n = parseInt(n);
				 if ( typeof n !== 'number' || !isFinite(n) ) n = 0;
				 if ( n < 0 ) n = 0;
				 return n;
   }
   function floorN(x, n)
   {
    var mult = Math.pow(10, n);
    return Math.floor(x*mult)/mult;
   }
//ÊàëüÊóëÿòîð
$("#calculator").change(function() {
  var totalSum = 0;
  var peopleFull =0;
  //var desc ='';
  peopleFull = _parseInt($("#people").val()); //Стоимость позиции

  $("input[id^='pos']").each(function() {

   var idElement = "#"+$(this).attr("id"), //получаем значение id

    priceField = _parseInt($(idElement+"_price").text()), //получеем цену
    countField = _parseInt($(this).val()); //количество порций
    //descText = $(idElement+"_desc > a").text();
   
   // alert(descText)   
  
   $(idElement+"_amount").text(priceField * countField +" руб."); //âûâîäèì ñóììó ïî ïîçèöèè
   totalSum += priceField * countField;
   totalSumpeople = totalSum / peopleFull;
   totalSumpeoples = floorN(totalSumpeople, 2);
   tot = descText + "цена" + priceField * countField +" руб.";
  });
  // alert(desc);
   $("#sel-dish").text(tot);
  $("#count_price span").text(totalSum);
  $("#count_price_people span").text(totalSumpeoples);
});
});

Разметка
<li><div class="first"><br>
	  <span class=\"button_podtext\"></div>
	    <ul>
		   <li name=\"pos_".$value['id']."_row\" id=\"cal-row\">
			 <div class=\"cal-color_1\" id=\"cal-color\"></div>
			 <div id=\"cal-img\"><img src=""photo/menu/smoll/"ФОТО" width=\"100\" alt=""></div>
		    <div id=\"cal-img\"><img src=\"".IRB_HOST."photo/no_image.gif\" width=\"100\" alt=\"no photo\"></div>
		    <div class=\"cal-desc\" id=\"pos_".$value['id']."_desc\"><a>НАЗВАНИЕ БЛЮДА</a></div>
		    <div id=\"cal-dish\">1</div>
		    <div id=\"cal-count\" >
			 <input id=\"pos_".$value['id']."\" size=\"5\"  type=\"text\" name=\"pos-input\" >
		    </div>
		    <div id=\"pos_".$value['id']."_price\" class=\"cal-price\">".$value['price']."</div>
		    <div id=\"pos_".$value['id']."_amount\" class=\"cal-amount\">0</div>  
		  </li>				   
	   </ul>
</li>

 

 

  • 0

#2 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 01 Ноябрь 2013 - 09:23

Обрабатываем событие, когда поле теряет фокус.
Получаем данные и добавляем их в объект. Название блюда, стоимость, количество порций.
Далее разбираем объект, формируем строку и вставляем куда нужно.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.



Оформление форума – IPBSkins.ru