Tengo un problema al convertir el método de publicación de datos de formulario que pasa a través de ajax. Quiero convertirlo a JSON y simplemente lo decodificaré en el controlador. Lo pasará a través de ajax usando el método de publicación.
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 ))
Intenté usar JSON.stringify pero parece que no funciona
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 no es solo un objeto.
Tienes que usar forEach bucle:
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);