如何通过 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 调用中放入更多行数据的正确语法是什么呢?

782273 次浏览

正确的语法是:

data: {status: status, name: name},

这里指定: http://api.jquery.com/jQuery.ajax/

所以如果这不起作用,我会提醒这些变量确保它们有值。

您可以通过 JSON 或通过普通的 POST 发送数据,下面是一个 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 something here
}
});

如果你想使用它通过正常后尝试这一点

 $.ajax({
type: "POST",
url: $('form').attr("action"),
data: $('#form0').serialize(),
success: function (result) {
// do something 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 字符串格式工作。

我是新的 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();
}

我是 ajax 的初学者,但我认为应该使用这个“ data: { status: status,name: name }”方法 必须将 datatype 设置为 JSON 也就是说

$.ajax({
type: "POST",
dataType: "json",
url: "ajax/activity_save.php",
data: {status: status, name: name},

试着引用一下:

data: {"status": status, "name": name}

肯定没问题。

这个我喜欢。

这是我的 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>

下面是我使用 AJAX 的 jQuery:

$("#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()
}
});
});

用这个

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) {...

根据 http://api.jquery.com/jquery.ajax/

$.ajax({
method: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});

以下是我在两天的头痛之后得到的结果: 为什么我不能让 AJaX 的“数据”设置发送两个键/值(包括一个包含原始图像数据的变量)是一个谜,但这似乎就是 Param ()函数的写作目的;

用你的变量创建一个 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);
}
});