Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: массив значений инпутов с общим классом
Форумы портала PHP.SU » » Вопросы новичков » массив значений инпутов с общим классом

Страниц (1): [1]
 

1. Tyoma5891 - 03 Октября, 2014 - 20:09:11 - перейти к сообщению
Добрый вечер коллеги!
столкнулся с такой проблемкой вот у меня есть два инпута к примеру:
CODE (html):
скопировать код в буфер обмена
  1.  
  2.  <div class="number_ov">
  3.         <input data="26142" id="quantity_26142" data-rel="ajaxaction=update&id=26142" onkeyup="return proverka(this);" type="number" value="5" class="num" name="quantity"/>
  4.     </div>
  5. <div class="number_ov">
  6.         <input data="23398" id="quantity_23398" data-rel="ajaxaction=update&id=23398" onkeyup="return proverka(this);" type="number" value="2" class="num" name="quantity"/>
  7.     </div>
  8.  

вопрос, как мне сформировать массив из значений value этих инпутов?
спасибо!
2. caballero - 03 Октября, 2014 - 20:13:14 - перейти к сообщению
name="quantity[]"
3. Tyoma5891 - 03 Октября, 2014 - 20:23:42 - перейти к сообщению
caballero пишет:
name="quantity[]"

да это логично я это понимаю, но как мене передать эти значение в файл пхп мой с помощью jquery:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. jQuery.post(act.php", {"quantity": quantity}, function(data) {$("#result1").html(data);}, 'html');
  3.  

сформулирую иначе вопрос как мне сформировать массив значений этих инпутов, используя только атрибуты data и class и передать єти значения с помощью jquery постом приведенным выше кодом?
4. teddy - 03 Октября, 2014 - 20:49:32 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. var inputs = $('.num').serializeArray();
  2. console.log(inputs );

(Добавление)
Если же нужно получать какие то произвольные атрибуты то предлагаю прогуляться по найденным инпутам и записать в объект необходимые значения. Вот пример:

CODE (javascript):
скопировать код в буфер обмена
  1. var inputs = $('.num');
  2. var result = new Object();
  3.  
  4. $.each(inputs, function(key){
  5.                
  6.     result[key] = {
  7.         'data-rel': $(this).attr('data-rel'),
  8.         'class': $(this).attr('class')
  9.     };
  10.                
  11. });
  12.  
  13. console.log(result);
5. Tyoma5891 - 03 Октября, 2014 - 21:57:30 - перейти к сообщению
спасибо огромное teddy дали плод для размышлений! +1 Вам, этого я не знал, взял на вооружение!
6. caballero - 03 Октября, 2014 - 22:22:32 - перейти к сообщению
вопщето для оправки форм аяксом есть плагин
http://malsup[dot]com/jquery/form/
который сам собирает данные с формы для отправки аяксом.
насчет отправки массива инпутов надо выяснить
теоретически данные должны прийти так, как будто форму отправили как обычно
7. teddy - 03 Октября, 2014 - 22:27:53 - перейти к сообщению
Tyoma5891
Не за что...

caballero
Хм.. а в чем профит использования плагина для отправки формы?
Получить значения всех инпутов можно с помощью простого селектора

var inputs = $('#form_id :input').serialize(); и все.. получается строка вида key=value&key1=value1
далее закидываем это как значение data при отправке ajax-запроса и как раз получаем
caballero пишет:
данные должны прийти так, как будто форму отправили как обычно

но тут походу автору нужно отправлять значения некоторых дата-атрибутов или ещё чего то
8. caballero - 03 Октября, 2014 - 22:35:48 - перейти к сообщению
профит в том что он отправляет форму как это принято в протоколе HTTP а не произвольной строкой.
лень с этим разбиратся но если плагин написан кошерно то в $_POST придет обычный
PHP массив.
9. teddy - 03 Октября, 2014 - 23:15:04 - перейти к сообщению
Хм ..Не замечал проблем при отправке данных таким способом. Все нормально отправляется и ложится в $_POST будто ты нажал на сабмит и отправил данные с релодом

 

Powered by ExBB FM 1.0 RC1