|
|
Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии Отправка данных (post) |
Отправка данных (post) |
У меня у материалов можно выбирать сразу несколько значений категорий.
Пытаюсь это реализовать в аякс отправке и безуспешно. Код var arrg = [1,2]; $.ajax({ url:'url', type:'post', dataType:'text', data: { ocat: arrg, }, success: function(html) { console.log('Позиция сохранена'); } }); Однако он их не видит таким образом. Пытался инимы способом Код ocat:1, ocat:2 Сообственно вопрос как отослать сразу несколько значений на сервер? |
Цитата (sch779) ocat1, ocat2 ------WebKitFormBoundaryiB9RdtECX0ocCT1tContent-Disposition: form-data; name="ocat" 2 ------WebKitFormBoundaryiB9RdtECX0ocCT1tContent-Disposition: form-data; name="ocat" 4 ------WebKitFormBoundaryiB9RdtECX0ocCT1tContent-Disposition: form-data; name="ocat" 6 вот выловленный пакет козы который выдаёт при ред/добавлении материала. |
Цитата (Nya|Adm|) вот выловленный пакет Только после этого можно будет определить как посылаются сразу несколько категорий на сервер. |
Nya[Adm], попробуйте так
Код var arrg = [1,2]; $.post("url", {'ocat[]': arrg}, success: function(html) { console.log('Позиция сохранена'); } ); P.S. Хотя, структура очень напоминает результат метода .serializeArray()! Она запишет массив ocat в jSON-формате: [{name:"ocat", value:"1"}, {name:"ocat", value:"2"}] Т.е., попробуйте так Код $.post("url", [{name:"ocat", value:"1"}, {name:"ocat", value:"2"}], success: function(html) { console.log('Позиция сохранена'); } ); Добавлено (15 Фев 2013, 14:27:34) Сообщение отредактировал sch779 - Пятница, 15 Фев 2013, 00:08:46
|
Код var aagr = [1,2,3]; _uPostForm('', {url:'/load/0-0-0-1-13',type:'post',data:{ocat:aagr}}); Приняло только значение 1, однако второй по списку. Цитата (sch779) [{name:"ocat", value:"1"}, {name:"ocat", value:"2"}] Цитата (sch779) 'ocat[]': arrg Добавлено (15 Фев 2013, 16:29:53) |
Цитата (Nya|Adm|) Приняло только значение 1 А вот _uPostForm с указанием формы генерит абсолютно правильный формат данных, который отличается от формата $.post! Т.е., обычный $.post генерит стандартную строку типа: ?prm1=data1&prm2=data2&... А _uPostForm с формой генерит, судя по всему, xml-формат, который выглядит именно так, как Вы показывали! Х/з, в чем разница!? |
Код $.ajax({ url:'/publ/0-0-0-0-1', type:'get', success:function(html){ var ssid = $('input[name=ssid]', html).val(); var aagr = ['1','2']; var data = { jkd498:1, jkd428:1, edttbrief:3, html_brief:1, edttmessage:3, html_message:1, uplastmod:1, coms_allowed:1, a:14, fsize:'', fsize:'', ffont:'', ffont:'', fcolor:'', fcolor:'', user:'', id:1, ocat:aagr, title:'Sword Art Online [25]', vers:'', brief:'S123123123', message:'123', llink:'#', aname:'Русская озвучка', aemail:'111', asite:'12345', proglink:'фсв', doclink:'ффф', ssid: ssid, _tp_:'xml', _wi:1 }; function quickForm() { var form = $('<form/>').attr({'method': 'post', 'action': '/load/0-0-0-13-1', 'enctype': 'mutipart/form-data', 'id': 'quickForm'};).hide(); for(var name in data){ $('<input/>').attr({'type': 'hidden', 'name': name};).val(data [name]).appendTo(form); } form.appendTo('body'); var onRequestFinished = function() { console.log(arguments); form.remove(); console.log('Done'); }; _uPostForm('quickForm', { error: onRequestFinished, success: onRequestFinished };); }; quickForm(); }, error: function() { console.log('123'); } };); В value получается - value="1, 2". Но так вообще не записывает значение.... Сообщение отредактировал Nya[Adm] - Суббота, 16 Фев 2013, 15:07:06
|
Цитата (Nya|Adm|) var form = $('<form/>').attr({'method': 'post', 'action': '/load/0-0-0-13-1', Кроме этого, у есть подозрение, что значения ocat форма выдает не в виде массива, как у Вас. |
sch779,
Цитата (sch779) '/load/0-0-0-13-1', Добавлено (16 Фев 2013, 22:43:10) Добавлено (16 Фев 2013, 22:46:20) Код 'enctype': 'mutipart/form-data' MUTIPART!!!!!!! КАК ТАК!!!!!!!!!!! |
Я добавляю новый материал методом $.post с другой страницы (все работает и добавляется). Но при этом, как известно, сервер присылает ответ в виде xml для аякс-окна. Я вижу этот ответ в отладчике. Но спрашивается: какой функцией словить этот ответ, чтоб на той левой странице, которая посылает $.post, выводилось аналогичное подтверждение (или ошибка - в зависимости от ответа).
ps аякс-окно я сформирую |
JQ передает ответ сервера в сallback.
Код $.post( 'Какой-то url', function ( data ) { // data - ответ сервера, обработать его можно внутри этого сallback-а }) |
Цитата (JabaMaster) обработать его можно внутри этого сallback-а Сам недавно на это "напоролся" - иногда в хроме и FF возврат результата идет не через метод success, а через error! При этом, есть текст ошибки - что-то типа про ошибку конвертации, но в responseText возвращается сообщение об успешной обработке запроса! |
| |||
| |||