转换表单数据与多字段JSON Jquery Javascript



我有一个问题转换表单数据后的方法通过ajax传递。我想把它转换成JSON,然后在控制器中解码。将使用post方法通过ajax传递它。

Array
(
[start_date] => 2021-10-01
[end_date] => 2021-11-01
[select_shop2] => 
[checkbox_time] => on
[start_time] => 00:30
[end_time] => 00:30
[todaydate] => 10/01/2021
[batch_promo_type] => 2
[batch_promo_rate] => 1
[batch_promo_price] => 5
[batch_promo_stock_qty] => 1
[batch_purch_limit_select] => 1
[batch_purch_limit] => 1
[product_id] => Array
(
[0] => 3c1da2d798c14921b672373ba2757dd8
[1] => fe38680795474c518dc49ba7a5c9a84f
[2] => e140459347654876a12dbd87f84d1073
[3] => bff038e92b414fde8fe16a420768bf2f
[4] => fa0cb79ef920499aa918dedb7e02e225
[5] => fdf43ab162bc4fd0bc9363033899e954
[6] => 9403284b1eb84f5f9ef9f28bfce8d486
[7] => 4640657c0b4a4fd9bbb139c1ae57eaee
[8] => 29a51f916acf4ffd825f4a28667edbf5
[9] => 343c2f955e9c4034be834378e2bdc672
)

)

我已经尝试使用JSON。Stringify,但似乎不工作

var form = $('#form_promoprod');
var form_data = new FormData(form[0]);
console.log(JSON.stringify(form_data));
$.ajax({
type: form[0].method,
url: base_url+'promotion/Main_promotion/mc_update_promotion',
data: form_data,
contentType: false,   
cache: false,      
processData:false,

FormData不仅仅是一个对象。

必须使用forEach循环:

const form = document.querySelector('#form_promoprod');
const formData = new FormData(form);
const object = {};
formData.forEach((value, key) => object[key] = value);
const json = JSON.stringify(object);

最新更新