Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическая передача значения инпута скрипту (https://javascript.ru/forum/dom-window/34815-dinamicheskaya-peredacha-znacheniya-inputa-skriptu.html)

zevilz 20.01.2013 15:32

Динамическая передача значения инпута скрипту
 
Есть корзина с оформлением заказа. По умолчанию есть только select для выбора типа доставки. После выбора типа доставки появляется вся дополнительная информация, которая отличается для 2х разных типов доставки. Написал скрипт для этого, все работает как надо. Было 2 типа доставки. Но сейчас типов доставки может быть сколько угодно, причем все кроме первого имеют похожую дополнительную инфу. Как переделать скрипт так, чтобы case "1" остался, а для всех остальных типов доставки был case "2" или что-то подобное, и чтобы далее в скрипте можно было передать значение option-типа доставки в аякс функцию для передачи значения скрипту php. Надеюсь понятно объяснил:)
Вот скрипт(совсем ненужное убрал):
$("#post_type").change(function(){
	switch($('#post_type').val()) {
	case "2": 
		.....................
		.....................
		if ($('tr#address td strong:empty').length === 0)
		{
			$("tr#payment select").change(function(){
				if ($('tr#payment select option:selected:empty').length === 0)
				{
					if($('#confirm_chkbx input').is(':checked')) {
						$('#confirm_chkbx input').removeAttr('checked');
						$('div#submit_order').empty();
					}
					$('#total_cost').slideDown('slow');
					$.ajax({
						url: "/handlers/cost.php?pt=2",
						cache: false,
						success: function(html){
							$("#total_cost strong").html(html);
						}
					});
					$('#confirm_chkbx').slideDown('slow');
					$('#confirm_chkbx input').change(function(){
						if($('#confirm_chkbx input').is(':checked')) {
							$('div#submit_order').empty();
							var pay=$("#payment select option:selected").val();
							$('div#submit_order').append('<input id="o_post_type" name="o_post_type" type="hidden" value="2"><input id="o_payment" name="o_payment" type="hidden" value="'+pay+'"><input id="order_submit" type="submit" value="Оформить заказ" tabindex="-1">').hide().fadeIn(500);
						}
						else
						{
							$('div#submit_order').empty();
						}
					});
				}
			});
		}
	break;
        case "1":
		$.ajax({
			url: "/handlers/cost.php?pt=1",
			cache: false,
			success: function(html){
				$("#total_cost strong").html(html);
			}
		});
		....
		....
		$('#confirm_chkbx input').change(function(){
			if($('#confirm_chkbx input').is(':checked')) {
				$('div#submit_order').empty();
				$('div#submit_order').append('<input id="o_post_type" name="o_post_type" type="hidden" value="1"><input id="order_submit" type="submit" value="Оформить заказ" tabindex="-1">').hide().fadeIn(500);
			}
			else
			{
				$('div#submit_order').empty();
			}
		});
	break;
	}
});

Пытался создать переменную со значением option и воткнуть в case "2" вместо двойки и далее в место нее же в скрипте

zevilz 20.01.2013 16:05

отставил только case "1" остальное отправил в default. Вроде что-то зафурычило. Проверять буду

zevilz 20.01.2013 17:57

Все работает отлично. Можно удалять тему


Часовой пояс GMT +3, время: 00:59.