Actualmente estoy luchando para pasar información de mi vista a un controlador (modelo MVC) en PHP. Estoy usando el método ajax.
Me gustaría transmitir información, como cadenas o matrices, al controlador:
var dataToSend = [{ fieldname: 'ABC' }, { fieldname: 'DEF' }]; dataToSend = JSON.stringify({ 'list': dataToSend }); $(".application-accept").click(function(event){ $.ajax({ url: "/olad2/project/processapplication/1", type: "POST", data: dataToSend, datatype: "JSON", contentType: "application/json; charset=utf-8" }).done(function(response){ console.log(response); console.log("done"); }).fail(function(err){ console.log(err.responseText); console.log("failed"); }); });
Cuando hago eco del resultado en el controlador, me han dicho por error que no hay una matriz:
echo json_encode(var_dump($_POST));
Que muestra (console.log()):
<b>array</b> <i>(size=0)</i>
vacío nulo
Sé que hay mucho tema sobre este tema, pero no funciona. Usted me podría ayudar ?
pd: es mi primer post
Esta versión revisada funciona:
$.ajax({ url:"https://jsonplaceholder.typicode.com/users", // url: "/olad2/project/processapplication/1", method: "POST", data: JSON.stringify({list:[{ fieldname: 'ABC' }, { fieldname: 'DEF' }]}), datatype: "JSON", contentType: "application/json; charset=utf-8" }).done(function (response) { console.log(response); console.log("done"); }).fail(function (err) { console.log(err.responseText); console.log("failed"); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Pero incluso su versión "casi sin cambios" funcionaría con la dirección de destino typicode:
var dataToSend = JSON.stringify({ 'list': [{ fieldname: 'ABC' }, { fieldname: 'DEF' }] }); $.ajax({ // url: "/olad2/project/processapplication/1", url: "https://jsonplaceholder.typicode.com/users", type: "POST", data: dataToSend, datatype: "JSON", contentType: "application/json; charset=utf-8" }).done(function(response) { console.log(response); console.log("done"); }).fail(function(err) { console.log(err.responseText); console.log("failed"); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>