Отправка данных формы AJAX`ом?
Вложений: 1
Здравствуйте уважаемые!
Есть функция формирующая таблицу с информацией (впоследствии появляется в диалоговом окне). Моя задача состояла в том, что бы в конце каждой <tr> с информацией, прикрутить SELECT + два скрытых <input> + кнопку для отправки формы. Так как SELECT и Кнопка формируются в ячейках, связал их с Формой при помощи form='data'. Для каждой <tr> Форма создаётся своя, но с одинаковым ID (предполагается, что за один раз можно изменить только одно значение в таблице). В срытых <input> формируются уникальные значение. <tr> может быть бесконечно много. Кинул click на Кнопку и создал функцию, которая обращается к серверному скрипту, для изменения значений в БД. Вот тут и начались проблемы, точнее одна. Data undefined так сказать) По всей видимости функция не получает данные из формы (у меня проблемы с подобными связываниями). Может, кто подскажет, намекнёт куда копать. Буду премного благодарен! function vr_cam_gr_draw_all(id) { if(($("#vr_grcam_"+id).length > 0)) { var tdiv = $("#vr_grcam_"+id); var ttable = $('#vr_grcam_t'+id); } else { var tdiv = $('<div/>',{id: "vr_grcam_"+id, title: "Список прав групп и пользователей (ID: "+id+")", "class": "list" }); var ttable = $('<table/>',{id: "vr_grcam_t_"+id, "class": "list", style: "border-bottom: 0px;" }); $(ttable) .append($('<thead/>').append($('<tr/>') .append($('<th/>',{text: 'ID Группы', width: 120})) .append($('<th/>',{text: 'Имя группы', width: 250})) .append($('<th/>',{text: 'Статус права', width: 110})) .append($('<th/>',{text: '', width: 120})) .append($('<th/>',{text: '', width: 60})) )) ; $(tdiv).append(ttable); for(var ruleline in group[id]) { $(ttable).append($('<tr/>') .append($('<td/>',{text: group[id][ruleline].group_id})) .append($('<td/>',{text: group[id][ruleline].group_name})) .append($('<td/>',{html: lang.rules.allowed[group[id][ruleline].rule_status]})) /********************************************************/ //Здесь начинается формироваться форма для отправки на сервер при нажатии кнопки ИЗМЕНИТЬ .append($("<form id='data'/>"))//Элементы формы не состоят в ней и связанны с ней по id='data' .append($('<td/>',{html: "<select name='rule_status' form='data'><option value=''>Выбрать статус</option><option value='0'>Запрещено</option><option value='1'>Разрешено</option><option value='2'>Только онлайн</option></select>", style:"padding: 5px"})) .append("<input type='hidden' form='data' name='group_id' value="+group[id][ruleline].group_id+">") .append("<input type='hidden' form='data' name='cam_gr_id' value="+id+">") .append($('<td/>') .append($('<button/>',{button: {}, "form": "data","type": "button" , text: 'Изменить', style:"font-size: 12px; padding: 3px;"}).click(function() {edit_rules(this); //Конец формы /********************************************************/ }))));}} $(tdiv).dialog({ width: '650', height: '300', resize: false }); } function edit_rules(obj) { var usr_url = cam_control+"/cgi-bin/admin.pl?m=editrules"; $.ajax({ type: 'GET', dataType: 'json', data: $(obj).serialize(), cache: false, url: usr_url, success: function(data){ if(data.error != undefined) { //На этом месте происходит ошибка! if(undefined != err_lang[data.error]) { alert('Ошибка: '+err_lang[data.error]); }else{ alert('Возникла неизвестная ошибка, попробуйте позже. ('+data.error+')'); }} }, error:function (xhr, ajaxOptions, thrownError, request, error){ alert('Возникла неизвестная ошибка, попробуйте позже. \n [ \n'+'xrs.cam_status = ' + xhr.status + '\n' + 'thrown error = ' + thrownError + '\n' + 'xhr.statusText = ' + xhr.statusText + '\n' + 'request = ' + request + '\n' + 'error = ' + error+' \n ]'); } }); } |
$("#data").ajaxSubmit вместо $.ajax поставить попробуйте
|
Спасибо! Побробую прикрутить
|
Jopses,
а данные точно в json формате? |
да. факт!
|
Часовой пояс GMT +3, время: 07:16. |