Magento 2: ¿Cómo enviar datos usando el formulario Ajax en forma personalizada?
11
¿Alguien puede explicarme cómo puedo crear un formulario simple en la página Magento-2 para enviar datos usando Ajax? Ya tengo un formulario y una acción de controlador, que envían datos sin usar ajax.
mira mi respuesta, podría ayudar más que la aceptada
LucScu
Mostrando error de respuesta> Propiedad indefinida:> espacio de nombres \ nombre de módulo \ Controlador \ Índice \ Índice \ Interceptor :: $ _ jsonHelper Por favor, comparta para mejorar la respuesta
Rohit Chauhan
Respuestas:
15
Puede configurar el código a continuación en su archivo phtml para usar ajax, debe cambiar su customurl en el código a continuación,
tienes que configurar la respuesta en $ this -> _ jsonHelper-> jsonEncode (['default_country' => $ country, 'state' => $ state,]) código en el controlador
Rakesh Jesadiya
1
en el caso anterior default_country y state son el retorno de la respuesta
Rakesh Jesadiya
12
La respuesta aceptada es buena, pero creo que podría ser útil, aproveche la validación js que ofrece magento core. Entonces, intente usar el script js a continuación:
<scripttype="text/javascript">
require(["jquery","mage/mage"],function($){
$(document).ready(function(){
$('#form_id').mage('validation',{
submitHandler:function(form){
$.ajax({
url:"url to module/controller/action",
data: $('#form_id').serialize(),
type:'POST',
dataType:'json',
beforeSend:function(){// show some loading icon},
success:function(data, status, xhr){// data contains your controller response},
error:function(xhr, status, errorThrown){
console.log('Error happens. Try again.');
console.log(errorThrown);}});}});});});</script>
No olvide que el controlador debe devolver la respuesta JSON como:
Respuestas:
Puede configurar el código a continuación en su archivo phtml para usar ajax, debe cambiar su customurl en el código a continuación,
dentro del método execute () de tu archivo controlador ,
fuente
La respuesta aceptada es buena, pero creo que podría ser útil, aproveche la validación js que ofrece magento core. Entonces, intente usar el script js a continuación:
No olvide que el controlador debe devolver la respuesta JSON como:
fuente