Как отправить несколько полей данных через Ajax? [закрытый]
Я застрял: я пытаюсь отправить форму с помощью AJAX, но я не могу найти способ, чтобы отправить несколько полей данных через AJAX-вызов.
$(document).ready(function() {
$("#btnSubmit").click(function() {
var status = $("#activitymessage").val();
var name = "Ronny";
$.ajax({
type: "POST",
url: "ajax/activity_save.php",
**data: "status="+status+"name="+name"**,
success: function(msg) {...
Я пробовал все виды вещей:
data: {status: status, name: name},
или даже такие вещи, как это только для целей тестирования:
data: "status=testing&name=ronny",
но что бы я ни пытался, я ничего не получаю в моем activity_save.php таким образом, ничего в моем SQL.
Итак, каков правильный синтаксис, чтобы поместить больше строк данных в мой вызов AJAX?
12 ответов:
синтаксис:
data: {status: status, name: name},Как указано здесь: http://api.jquery.com/jQuery.ajax/
поэтому, если это не сработает, я бы предупредил эти переменные, чтобы убедиться, что у них есть значения.
вы можете отправлять данные через Json или через обычную почту, Вот пример для Json.
var value1 = 1; var value2 = 2; var value3 = 3; $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "yoururlhere", data: "{'data1':'" + value1+ "', 'data2':'" + value2+ "', 'data3':'" + value3+ "'}", success: function (result) { //do somthing here } });Если вы хотите использовать его через обычный пост попробуйте это
$.ajax({ type: "POST", url: $('form').attr("action"), data: $('#form0').serialize(), success: function (result) { // do somthing here } });
var countries = new Array(); countries[0] = 'ga'; countries[1] = 'cd';после этого вы можете сделать так:
var new_countries = countries.join(',')после:
$.ajax({ type: "POST", url: "Concessions.aspx/GetConcessions", data: new_countries, ...эта вещь работает как формат строки JSON.
согласно http://api.jquery.com/jquery.ajax/
$.ajax({ method: "POST", url: "some.php", data: { name: "John", location: "Boston" } }) .done(function( msg ) { alert( "Data Saved: " + msg ); });
это работает для меня.
вот мой PHP:
<div id="pageContent"> <?php while($row = mysqli_fetch_assoc($stmt)) { ?> <br/> <input id="vendorName_" name="vendorName_<?php echo $row["id"]; ?>" value='<?php echo $row["vendorName"]; ?>'> <input id="owner_" name="owner_<?php echo $row["id"]; ?>" value='<?php echo $row["owner"]; ?>'> <input id="city_" name="city_<?php echo $row["id"]; ?>" value='<?php echo $row["city"]; ?>'> <button id="btn_update_<?php echo $row["id"]; ?>">Update</button> <button id="btn_delete_<?php echo $row["id"]; ?>">Delete</button> <?php } ?> </br></br> <input id = "vendorName_new" value=""> <input id = "owner_new" value=""> <input id = "city_new" value=""> <button id = "addNewVendor" type="submit">+ New Vendor</button> </div>вот мой jQuery с помощью AJAX:
$("#addNewVendor").click(function() { alert(); $.ajax({ type: "POST", url: "create.php", data: {vendorName: $("#vendorName_new").val(), owner: $("#owner_new").val(), city: $("#city_new").val()}, success: function(){ $(this).hide(); $('div.success').fadeIn(); showUsers() } }); });
Я новичок в ajax, но я думаю использовать этот метод " data: {status: status, name: name}" тип данных должен быть установлен в JSON я.е
$.ajax({ type: "POST", dataType: "json", url: "ajax/activity_save.php", data: {status: status, name: name},
использовать
data: '{"username":"' + username + '"}',Я стараюсь много синтаксиса для работы с laravel он работает для меня для laravel 4.2 + ajax.
попробуйте это:
$(document).ready(function() { $("#btnSubmit").click(function() { var status = $("#activitymessage").val(); var name = "Ronny"; $.ajax({ type: "POST", url: "ajax/activity_save.php", data: {'status': status, 'name': name}, success: function(msg) {...
Я новичок в AJAX, и я пробовал это, и это хорошо работает.
function q1mrks(country,m) { // alert("hellow"); if (country.length==0) { //alert("hellow"); document.getElementById("q1mrks").innerHTML=""; return; } if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("q1mrks").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","../location/cal_marks.php?q1mrks="+country+"&marks="+m,true); //mygetrequest.open("GET", "basicform.php?name="+namevalue+"&age="+agevalue, true) xmlhttp.send(); }
вот что работает для меня после 2 дней головокружения; почему я не мог получить настройку AJaX 'data' для отправки двух ключей/значений (включая переменную, содержащую необработанные данные изображения), было загадкой, но это, похоже, то, что jQuery.параметр (функция) было написано для;
создайте массив params с переменными, без кавычек:
var params = { key_name1: var_1, key_name2: var_2 }; // etc. var ser_data = jQuery.param( params ); // arbitrary variable nameиспользуйте переменную ser_data в качестве значения данных;
$.ajax({ type: 'POST', url: '../php_handler_url.php', data: ser_data, }).success(function(response) { alert(response); });документация здесь: https://api.jquery.com/jQuery.param/
надеюсь, что это поможет!
попробуйте использовать :
$.ajax({ type: "GET", url: "something.php", data: { "b": data1, "c": data2 }, dataType: "html", beforeSend: function(){ }, error: function(){ alert("Error"); }, success: function(data){ $("#result").empty(); $("#result").append(data); } }); });
Comments