Как передать массив данных собранных querySelectorAll, через Ajax?
Здравствуйте мне нужно передать массив данных через Ajax, которые были собраны querySelectorAll? Вот фрагмент кода:
jQuery(document).ready(function(){ ajaxQuery(); function ajaxQuery() { var arr = []; var allBlock = document.querySelectorAll("div.social_locker"); for(var i = 0; i < allBlock.length; i++) { arr.push(allBlock[i].id); } $.ajax({ type: "POST", data: "action=showBlock&arr="+JSON.stringify(arr), url: "/action.php", dataType: "json", success: function(responce) { if(responce.result=="success") { jQuery('#content_show'+num).html(responce.message); } } }); } |
Katy93,
success: function(responce){ jQuery('#content_show'+num).html(responce);} |
На самом деле мне нужно было понять почему на сервере вместо цельного элемента массива я получаю только один символ.
Например при записи файла через file_put_contents записывается только один символов. Нужно было массив пропустить через json_deocode. Было Цитата:
Цитата:
|
Katy93,
ждите специалиста по php |
Цитата:
Ваши данные имеют следующий вид: action=showBlock&arr=[1,2,3] На сервере это будет _POST с 2-мя ключами: «action» и «arr», но последний будет не массивом как вы ожидаете, а строкой. Чтобы сервер прочитал ключ «arr» как массив, данные должны иметь следующий вид: action=showBlock&arr[]=1&arr[]=2&arr[]=3 Проще всего изменить content-type запроса на «application/json», а данные передавать следующим образом: data: JSON.stringify({ action: 'showBlock', arr: [1, 2, 3] }) В этом случае сервер корректно разберет передаваемые вами данные. |
Часовой пояс GMT +3, время: 10:20. |