Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как собрать массив из значений селектов для аякса (https://javascript.ru/forum/dom-window/50068-kak-sobrat-massiv-iz-znachenijj-selektov-dlya-ayaksa.html)

imedia 10.09.2014 14:12

Как собрать массив из значений селектов для аякса
 
Здравствуйте есть форма а в форме динамически добавляются города, не известно сколько их будет в итоге.
Имена у селектов такого рода resort_0,resort_1,resort_2 и тд
Мне через аякс нужно передать массив этих селектов а в пхп его распарсить, как это сделать? Если можно примером покажите
В форме есть и другого рода селекты, так что each('select') не получится сделать
<form>
<select name="country">
</select>
<select name="resort_0">
</select>
<select name="resort_1">
</select>
<select name="resort_2">
</select>
</form>


var rst=?
 $.ajax({
          type: 'POST',
	  dataType:'json',
          data:{resorts:rst},
          url: '/functions_ajax/get_countries/',
          success: function(data) {

          },
          error:  function(xhr, str){
                alert('Возникла ошибка: ' + xhr.responseCode);
            }
			

        });

ksa 10.09.2014 14:15

Цитата:

Сообщение от imedia
Если можно примером покажите

Где твой тестовый пример? На чем показывать?

imedia 10.09.2014 15:28

тестовый пример в вопросе

ksa 10.09.2014 16:11

Цитата:

Сообщение от imedia
тестовый пример в вопросе

Все, что тебе нужно - это в объект
data:{resorts:rst}

поместить массив значений
data: {
   resorts: [
      <value_первого_селекта>,
      <value_второго_селекта>,
      ...,
      <value_N-ного_селекта>
   ]
}

Причем мне не понятно зачем тем селектам давать разные name? С одинаковым name их и обрабатывать будет удобнее. ;)

ksa 10.09.2014 16:50

imedia, вот некая иллюстрация...

<!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 (){
	$('button').click(function (){
		var a=[];
		var o=document.getElementsByName('resort');
		for (var i=0; i<o.length; i++) {
			a[i]=o[i].value;
		};
		var data={resort: a};
		console.log(data);
		// далее отправка данных...
	});
});
</script>
</head>
<body>
<form>
	<select name="country">
	</select>
	<select name="resort">
		<option value='0'>0</option>
	</select>
	<select name="resort">
		<option value='1'>1</option>
	</select>
	<select name="resort">
		<option value='2'>2</option>
	</select>
	<button>Test</button>
</form>
</body>
</html>
</html>

imedia 10.09.2014 17:12

допустим они все будут под одним name, как их собрать в один массив?

ksa 11.09.2014 08:19

Цитата:

Сообщение от imedia
допустим они все будут под одним name, как их собрать в один массив?

Я уже все показал в примере выше...


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