Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2015, 08:29
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

Получение данных из нескольких select с одним name
Необходимо как то получить значения нескольких Select c одним name.
Обычной формой оно нормально работает, а если через getXmlHttpRequest(), то получает только из первого Select.

<div id="qwqwqw"><div style="position:relative;">Товар 1
      <select name="thisplace[]">
        <option value="4">Грандпри</option>
        <option value="1">Золото</option>
        <option value="2">Серебро</option>
        <option value="3">Бронза</option>
      </select> 
      </div><div style="position:relative;">Товар 2
      <select name="thisplace[]">
        <option value="4">Грандпри</option>
        <option value="1">Золото</option>
        <option value="2">Серебро</option>
        <option value="3">Бронза</option>
      </select> 
      </div>
    </div>

function testA(){
        var ElemId = document.getElementById('qwqwqw');
		var val5 = ElemId.querySelector("select[name='thisplace[]']").value;  
        alert(val5);
      }


Вот пример демо...
http://learn.javascript.ru/play/psn4Rb
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2015, 08:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от psfdek
а если через getXmlHttpRequest(), то получает только из первого Select.
Дело явно не в getXmlHttpRequest()...

Пример

<!DOCTYPE html>
<html>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
window.onload=function(){
	var a=document.querySelectorAll('#qwqwqw [name="thisplace[]"]');
	for (var i=0; i<a.length; i++) {
		alert(a[i].value);
	};
};
</script>
</head>
<body>
<div id="qwqwqw">
	<div style="position:relative;">Товар 1
		<select name="thisplace[]">
			<option value="4">Грандпри</option>
			<option value="1">Золото</option>
			<option value="2">Серебро</option>
			<option value="3">Бронза</option>
		</select> 
	</div>
	<div style="position:relative;">Товар 2
		<select name="thisplace[]">
			<option value="4">Грандпри</option>
			<option value="1">Золото</option>
			<option value="2">Серебро</option>
			<option value="3">Бронза</option>
		</select> 
	</div>
</div>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2015, 09:31
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

Благодарю Вас!
------------------------------------------------------------------------------
http://learn.javascript.ru/play/782xj - для сохранности ссылки
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2015, 10:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А как же вы их на сервер различать будете, что кому принадлежит? А если не важно это, то зачем два списка?
Ответить с цитированием
  #5 (permalink)  
Старый 18.03.2015, 10:23
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

Это же часть, всего лишь.
У меня в атрибуте data-id лежит идентификатор товара.
будут отсылаться 2 строки, 1 - строка с местами, 2 - строка с ИД.
Потом в php сопоставление по порядку просто.


Вот например так http://learn.javascript.ru/play/TpXRb

Последний раз редактировалось psfdek, 18.03.2015 в 10:27.
Ответить с цитированием
  #6 (permalink)  
Старый 18.03.2015, 10:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А причем тут атрибут data-id, если передаются значения выбранное из писков? Уж тогда thisplace[идентификатор товара] - получите один массив ключами которого и будут идентификаторы товаров.
Ответить с цитированием
  #7 (permalink)  
Старый 18.03.2015, 10:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от laimas
А как же вы их на сервер различать будете, что кому принадлежит?
Так там целый массив придет. Т.е. задача типа "Пришлите, что вам нужно из нашего списка" вполне решаема...
Ответить с цитированием
  #8 (permalink)  
Старый 18.03.2015, 10:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Даже так? То есть есть идентичные списки, но каждый принадлежит разным источникам, и чтобы получить значения и понять у какого из источников что выбрано, нужно городить такой геморрой? Почитайте:

У меня в атрибуте data-id лежит идентификатор товара.
будут отсылаться 2 строки, 1 - строка с местами, 2 - строка с ИД.


И заметьте, что эти строки ничем не связаны. Ну что это как не профанация?
Ответить с цитированием
  #9 (permalink)  
Старый 18.03.2015, 10:45
Аватар для psfdek
Профессор
Отправить личное сообщение для psfdek Посмотреть профиль Найти все сообщения от psfdek
 
Регистрация: 14.02.2014
Сообщений: 157

thisplace - должен быть одинаковый у всех.
Так как там в форму запись идет обычным методом.
Я реализую отображение выбранных елементов из селекта.1, и у каждого выбранного элемента свой селект.2
Потом выбранные товары записываются как строка из селекта.1 а места этих товаров записываются в том же порядке из селекта.2.

Это все на неткате, там по другому никак не сделать вроде бы.
Короче всё норм.
Ответить с цитированием
  #10 (permalink)  
Старый 18.03.2015, 10:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Чушь это собачья. Если к примеру, получаем те же товары из корзины, и среди этого есть товары у которых изменили значения какие либо, и те что надо удалить из корзины, то могут быть два массива в итоге:

а) массив всех товаров ключами которого являются идентификаторы
б) массив выбранных для удаления товаров, значения которых (или также ключи) это их идентификаторы

Если пришел массив б) значит пересечением массивов удаляем из массива а) удаляемые товары. Это удобно.

Зачем в вашем случае городить огород, если один массив сразу может передать информацию и о идентификаторе товара, и его выборе?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение данных из нескольких полей в одно gJam Events/DOM/Window 3 09.06.2012 13:13
Тупик... Вставка данных в зависимости от SELECT xaocbozzz Элементы интерфейса 3 03.05.2012 04:57
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Получение данных NeoMurderer AJAX и COMET 11 21.08.2011 14:46
Продлема с получением данных из select Tartyga Общие вопросы Javascript 10 05.08.2009 22:13