通过Json传输表单数据

时间:2017-07-26 16:44:48

标签: javascript php json

我相信我在某个地方犯了一个非常基本的错误。

我有一个我希望传输到PHP页面的表单。我还想发送一个包含该信息的参数,因此我创建了一个基本的2D数组: $ fd ['api'] - >将参数作为字符串 $ fd ['body'] - >包含表单数据

我正在努力将此数组“$ fd”作为json字符串传输,并且相信我在某处错误地使用了javascript语法,因为我不经常使用Javascript。

任何帮助都将不胜感激。

function admin_statistics_form_send(){
  var fd = []
  fd['api'] = "refresh_all"
  fd['body'] = new FormData(document.getElementById("admin_statistics_form"))
  var jsonstring = fd
  console.log(jsonstring)
  $.ajax({
    async: true,
    beforeSend: function(){
    },
    url: "admin_statistics_api.php",
    type: "POST",
    data: jsonstring,
    dataType: "json",
    processData: false,  // tell jQuery not to process the data
    contentType: false,   // tell jQuery not to set contentType
    success: function (data) {
        console.log(data)
    },
    error: function(data) {
        console.log(data)
    }
  })
}

1 个答案:

答案 0 :(得分:2)

您只想发送FormData对象。要将 append 的其他键/值对添加到该对象:

function admin_statistics_form_send(){
  var fd = new FormData($("#admin_statistics_form")[0]);
  fd.append('api',"refresh_all");


  $.ajax({
    //async: true, // redundant since it is default and should never use `false`
    beforeSend: function(){
    },
    url: "admin_statistics_api.php",
    type: "POST",
    data: fd,
    dataType: "json",
    processData: false,  // tell jQuery not to process the data
    contentType: false,   // tell jQuery not to set contentType
    success: function (data) {
        console.log(data)
    },
    error: function(data) {
        console.log(data)
    }
  })
}