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 :: Версия для печати :: Отправка POST через ajax
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Отправка POST через ajax

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

1. terzik993 - 27 Июня, 2017 - 11:54:02 - перейти к сообщению
Есть список элементов с уникальным id и одинаковым классом, я их отправляю через ajax, возникает проблема в том, что все отправляется в одну строчку и php расматривает переданные данные как одно значение. Проблема в том что каждый раз может быть разное количество передаваемых id. Как сделать так что бы php разбивало все на массивы и обрабатывал дальше?
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.     <script>
  3.         $(document).ready(function(){
  4.             $("#view").bind("click", function(){
  5.                 $.ajax({
  6.                                 url:"remove.php",
  7.                                 type:"POST",
  8.                                 data:({remove:$("a.set").text()}),
  9.                                 dataType: "html",
  10.                                 beforeSend: function(){
  11.                                         $("#view").html('<div class="loading"><img src="/images/loading_spinner.gif" style="width:100px;"></div>');
  12.                                 },
  13.                                 success: function(data){
  14.                                         $("#view").html(data);
  15.                                 }
  16.                         });
  17.             });
  18.            
  19.            
  20.         });
  21.     </script>
  22.  

CODE (html):
скопировать код в буфер обмена
  1. <form method="POST">
  2.         <div class="row1 selected" id="number1">1</div><div class="row2"><a class="none set" id="noMRKU8789650">MRKU8789650 </a></div><div class="row3">Maersk</div><div class="row4">2017-06-27</div>
  3.         <div class="row1 selected" id="number2">2</div><div class="row2"><a class="none set" id="noMRKU4414912">MRKU4414912 </a></div><div class="row3">Maersk</div><div class="row4">2017-06-27</div> 
  4.         <div class="row1 selected" id="number3">3</div><div class="row2"><a class="none set" id="noMRKU3003624">MRKU3003624 </a></div><div class="row3">Maersk</div><div class="row4">2017-06-27</div>
  5. </form>
2. Sail - 27 Июня, 2017 - 17:32:07 - перейти к сообщению
terzik993 пишет:
что все отправляется в одну строчку и php расматривает переданные данные как одно значение

Почему должно быть иначе, если данные формируются вызовом $("a.set").text()?
Можно, например, предварительно обойти каждый из предлагаемых селекторов, выбрать нужные данные, поместить их в объект (массив) и уже его передавать.
Для справки: .each()
3. MouseZver - 22 Июля, 2017 - 08:33:13 - перейти к сообщению
https://github[dot]com/MouseZver/Mou[dot][dot][dot]/js/MouseZver[dot]js

c 87 по 123 строки
(Добавление)
мда ссылку тут даже пережевывает РукаНога
4. andrewkard - 25 Июля, 2017 - 22:46:11 - перейти к сообщению
Странная у Вас форма.
Как уже сказали, обычно в цикле собираем значения, которые нужны, например с чекбоксами:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var ids = [];
  3.     var checkboxes = $('input[type="checkbox"]');
  4.     $.each(checkboxes,function(index,element){
  5.         if ($(element).prop('checked')){
  6.             ids.push($(element).val());
  7.         }
  8.     });
  9.  

Не совсем правильный, но в некоторых случаях может подойти, если сцепляющий символ точно не будет в значениях
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. ids = $('a.set').clone().append('|').text();
  3.  

 

Powered by ExBB FM 1.0 RC1