如何通过Ajax发送多个数据字段?

时间:2011-05-22 02:25:48

标签: jquery sql 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 个答案:

答案 0 :(得分:218)

正确的语法是:

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

如此处所指定:http://api.jquery.com/jQuery.ajax/

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

答案 1 :(得分:31)

你可以通过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 somthing here
      }
 });

如果你想通过正常的帖子使用它,试试这个

 $.ajax({
      type: "POST",
      url: $('form').attr("action"),   
      data: $('#form0').serialize(),
      success: function (result) {
         // do somthing here
      }
 });

答案 2 :(得分:7)

尝试使用引号:

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

它必须正常工作。

答案 3 :(得分:4)

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字符串格式。

答案 4 :(得分:3)

这个适合我。

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

答案 5 :(得分:3)

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

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

答案 6 :(得分:2)

我是ajax的初学者,但我想使用这个“data:{status:status,name:name}”方法 数据类型必须设置为JSON 即

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

使用此

data: '{"username":"' + username + '"}',

我尝试了很多语法来使用laravel laravel 4.2 + ajax对我有用。

答案 9 :(得分:1)

试试这个:

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

答案 10 :(得分:1)

尝试使用:

For i = 1 To ActiveDocument.Tables(1).Rows.Count
Set rng1 = Selection.Range
With Selection.Range
With .Find

答案 11 :(得分:0)

经过2天的搔痒,这对我有用;为什么我不能让AJaX'数据'设置发送两个键/值(包括一个包含原始图像数据的变量)是个谜,但这似乎是 jQuery.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/

希望有所帮助!