ФорумПрограммированиеJavaScript → Отправка array из multiple checkbox values

Отправка array из multiple checkbox values

  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 19:43

    Никак не могу взять активные чекбоксы в var, пробовал и так
    var storona = $('input:checkbox[name="storona[]"]');

    и так
    var storona = $('input[name="storona[]"]');

    и так
    var storona = $('input:checkbox[name="storona[]"]:checked');

    ничего не удается.

    <input type="checkbox" name="storona[]" value="Левое зеркало (водительское)" /> Левое зеркало (водительское)<br />
    <input type="checkbox" name="storona[]" value="Правое зеркало (пассажирское)" /> Правое зеркало (пассажирское)<br />
    <input type="checkbox" name="storona[]" value="Внутрисалонное зеркало заднего вида" /> Внутрисалонное зеркало заднего вида<br />
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 29 октября 2012 г. 19:59, спустя 15 минут 57 секунд

    Неужели третий вариант не работает? Покажи весь файл.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 октября 2012 г. 20:44, спустя 44 минуты 38 секунд

    ТС, лучше на http://jsfiddle.net/ опубликуй куски кода чем здесь
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 октября 2012 г. 20:54, спустя 10 минут 22 секунды

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 октября 2012 г. 22:25, спустя 1 час 31 минуту 13 секунд

    Вот вот
    Сапожник без сапог
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 22:37, спустя 11 минут 59 секунд

    http://jsfiddle.net/Gr7nP/

    ну вроде всё так, но не работает, юзаю http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js

    вот полный код
    $(document).ready(function() {
    	
    	$('#submit').click(function () {		
    
    		var marka = $('input[name=marka]');
    		var model = $('input[name=model]');
    		var year = $('input[name=year]');
    		var ver = $('select[name=ver]');
    		var storona = $('input[name^="storona"]:checked');
    
    		var full_name = $('input[name=name]');
    		var phone = $('input[name=phone]');
    		var town = $('input[name=town]');
    
    		//If error found, add hightlight class to the text field
    
    		if (marka.val()=='') {
    			marka.addClass('hightlight');
    			return false;
    		} else marka.removeClass('hightlight');
    		
    		if (model.val()=='') {
    			model.addClass('hightlight');
    			return false;
    		} else model.removeClass('hightlight');
    
    		if (year.val()=='') {
    			year.addClass('hightlight');
    			return false;
    		} else year.removeClass('hightlight');
    
    		if (ver.val()=='') {
    			ver.addClass('hightlight');
    			return false;
    		} else ver.removeClass('hightlight');
    
    		if (full_name.val()=='') {
    			full_name.addClass('hightlight');
    			return false;
    		} else full_name.removeClass('hightlight');
    
    		if (phone.val()=='') {
    			phone.addClass('hightlight');
    			return false;
    		} else phone.removeClass('hightlight');
    
    		$('#submit').hide();
    		$('#process').show();
    
    		//organize the data properly
    		var data = 'marka=' + marka.val() + '&model=' + model.val() + '&year=' + year.val() + '&ver=' + ver.val() + '&storona=' + storona.val() + '&name=' + full_name.val() + '&phone=' + phone.val() + '&town=' + town.val();
    		
    		//disabled all the text fields
    		$('.text').attr('disabled','true');
    		
    		//show the loading sign
    		$('.loading').show();
    		
    		//start the ajax
    		$.ajax({
    			//this is the php file that processes the data and send mail
    			url: "query.php",	
    			
    			//GET method is used
    			type: "GET",
    
    			//pass the data			
    			data: data,		
    			
    			//Do not cache the page
    			cache: false,
    			
    			//success
    			success: function (html) {				
    				//if process.php returned 1/true (send mail success)
    				if (html==1) {					
    					//hide the form
    					$('.form').fadeOut('slow');					
    					
    					//show the success message
    					$('.done').fadeIn('slow');
    					
    				//if process.php returned 0/false (send mail failed)
    				} else alert('Ошибка при оформлении заказа');				
    			}		
    		});
    		
    		//cancel the submit button default behaviours
    		return false;
    	});	
    });	
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 октября 2012 г. 22:46, спустя 8 минут 39 секунд

    может из-за версии? 1.2.7 - это очень старая как бы
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 22:52, спустя 6 минут 7 секунд

    может из-за версии? 1.2.7 - это очень старая как бы

    попробовал 1.7.2 всё тоже самое, с кодом:
    var storona = $('input[name="storona[]"]').filter(':checked').serializeArray();

    вообще перестает всё работать, форма отправляется по html, а не jquery
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 23:47, спустя 55 минут 4 секунды

  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 23:54, спустя 6 минут 53 секунды

    вместо
    		var data = 'marka=' + marka.val() + 
    				   '&model=' + model.val() + 
    				   '&year=' + year.val() + 
    				   '&ver=' + ver.val() + 
    				   '&storona=' + storona.val() + 
    				   '&name=' + full_name.val() + 
    				   '&phone=' + phone.val() + 
    				   '&town=' + town.val();

    сделал
    var data = $('#griskl').serializeArray();

    и всё работает, ппц, 6 часов над какой-то одной фигнёй протрахался, пойду поиграю в казаков.
    Спустя 22 сек.
    всем ещё раз респект за помощь, про serializeArray вообще не ведал.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!