как отправить несколько данных с помощью $ .ajax () jquery
Я пытаюсь отправить несколько данных, используя метод j. $ .ajax для моего php-скрипта, но я могу передавать только отдельные данные, когда я конкатенирую несколько данных. Я получаю неопределенную ошибку индекса в моем скрипте php. tat означает, что запрос ajax выполняется, но данные не являются отправлено мне нужно знать, как я должен форматировать несколько данных для последовательного отправки его в скрипт обработки в пару имен vale, вот что я написал
$(document).ready(function() { $('#add').click(function () { var name = $('#add').attr("data_id"); var id = $('#add').attr("uid"); var data = 'id='+ id & 'name='+ name; // this where i add multiple data using ' & ' $.ajax({ type:"GET", cache:false, url:"welcome.php", data:data, // multiple data sent using ajax success: function (html) { $('#add').val('data sent sent'); $('#msg').html(html); } }); return false; }); });
- Предварительный просмотр веб-страницы jQuery
- jQuery отключить ссылку
- Есть ли способ отключить первоначальную сортировку для jQuery DataTables?
- Изменение заголовков HTTP для запроса JSONP
- загрузить json в переменную
- Обработка тайм-аута сеанса в вызовах ajax
- jQuery выбирает атрибут с использованием операторов AND и OR
- Что не так с живым методом jQuery?
- Вызов функции ColdFusion с использованием AJAX
- Проблемы с WebKit с event.layerX и event.layerY
- Как изменить только текстовый узел в элементе
- jQuery ведет себя странно после обновления страницы (F5) в Chrome
- jQuery validator и настраиваемое правило, использующее AJAX
Вы можете создать объект пары ключ / значение, а jQuery сделает для вас все остальное:
$.ajax({ ... data : { foo : 'bar', bar : 'foo' }, ... });
Таким образом, данные будут правильно закодированы автоматически. Если вы хотите придумать свою собственную строку, убедитесь, что вы используете encodeURIComponent()
: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent
Ваш текущий код не работает, потому что строка не выдумана правильно:
'id='+ id & 'name='+ name
должно быть:
'id='+ encodeURIComponent(id) + '&name='+ encodeURIComponent(name)
Изменить var data = 'id='+ id & 'name='+ name;
как показано ниже,
используйте это вместо этого …..
var data = "id="+ id + "&name=" + name;
это будет нормально работать 🙂
var data = 'id='+ id & 'name='+ name;
Также необходимо указать амперсанд:
var data = 'id='+ id + '&name='+ name;
var value1=$("id1").val(); var value2=$("id2").val(); data:"{'data1':'"+value1+"','data2':'"+value2+"'}"
var my_arr = new Array(listingID, site_click, browser, dimension); var AjaxURL = 'http://example.com'; var jsonString = JSON.stringify(my_arr); $.ajax({ type: "POST", url: AjaxURL, data: {data: jsonString}, success: function(result) { window.console.log('Successful'); } });
Это работает для меня довольно долгое время.
Я бы рекомендовал использовать хеш вместо строки param:
data = {id: id, name: name}
вы можете использовать FormData
взгляните на мой fragment из MVC
var fd = new FormData(); fd.append("ProfilePicture", $("#mydropzone")[0].files[0]);// getting value from form feleds d.append("id", @(((User) Session["User"]).ID));// getting value from session $.ajax({ url: '@Url.Action("ChangeUserPicture", "User")', dataType: "json", data: fd,//here is your data processData: false, contentType: false, type: 'post', success: function(data) {},
var CommentData= "u_id=" + $(this).attr("u_id") + "&post_id=" + $(this).attr("p_id") + "&comment=" + $(this).val();
var value1=$("id1").val(); var value2=$("id2").val(); data:"{'data1':'"+value1+"','data2':'"+value2+"'}"
Вы можете использовать этот способ для передачи данных