How to insert form data Using AJAX request.
This my phtml file
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="col-sm-8">
<form method="POST" action="<?= $this->getUrl('mcf/index/save'); ?>" id="mcf" role="form" name="RegForm" enctype="multipart/form-data" data-mage-init='{"validation":{"rules": {"field-2": {"required":true}}}}'>
<div class="form-group">
<h2>Form</h2>
</div>
<div class="form-group">
<label class="control-label"><span><?= $block->escapeHtml('Your Name') ?></span></label>
<input id="name" name="name" type="text" class="form-control" data-validate='{"required":true}'>
</div>
<div class="form-group">
<label class="control-label"><span><?= $block->escapeHtml('Your FirstName') ?></span></label>
<input id="firstname" name="firstname" type="text" class="form-control">
</div>
<div class="form-group">
<label class="control-label"><span><?= $block->escapeHtml('Your LastName') ?></span></label>
<input id="lastname" name="lastname" type="text" class="form-control">
</div>
<div class="form-group">
<label class="control-label"><span><?= $block->escapeHtml('Your Address') ?></span></label>
<input id="address" name="address" type="text" class="form-control">
</div>
<div class="form-group">
<label class="control-label" for="field-2"><span><?= $block->escapeHtml('Your Mobile Number') ?></span></label>
<input id="mo_number" name="mo_number" type="text" class="form-control" data-validate='{"required":true, "validate-number": true}'>
</div>
<div class="form-group">
<label class="control-label"><span><?= $block->escapeHtml('Gender') ?></span></label><br>
<input type="radio" name="gender" value="male" checked>Male<br>
<input type="radio" name="gender" value="female">FeMale<br>
<input type="radio" name="gender" value="other">Other<br>
</div>
<div class="actions-toolbar">
<div class="primary">
<button type="submit" title="Submit" class="action submit primary">
<span>Submit</span>
</button>
</div>
</div>
</form>
</div>
</body>
</html>
<style>
.mcf-index-index .page-wrapper .panel.wrapper {
display: none;
}
</style>
This is my Controller file :-
<?php
namespace Mag\MCF\Controller\Index;
use Mag\MCF\Model\McfFactory;
class Save extends \Magento\Framework\App\Action\Action
{
protected $_mcfFactory;
private $logger;
public function __construct(
\Magento\Framework\App\Action\Context $context,
McfFactory $mcfFactory
// \Psr\Log\LoggerInterface $logger
) {
$this->_mcfFactory = $mcfFactory;
parent::__construct($context);
// $this->logger = $logger;
}
public function execute()
{
// echo "You are redirect Sucess";
$post_data = (array) $this->getRequest()->getPost();
$resultRedirect = $this->resultRedirectFactory->create();
// echo "<pre>";
// print_r($post_data);
try {
$Mcfdata = $this->_mcfFactory->create();
$Mcfdata->setData($post_data);
$Mcfdata->save();
$this->messageManager->addSuccess(__("Save Data"));
$resultRedirect->setPath('mcf/index/index/');
return $resultRedirect;
} catch (\Exception $e) {
// $this->logger->critical($e->getMessage());
$this->messageManager->addError(__('please try again. Form Not Submit'));
$resultRedirect->setPath('mcf/index/index/');
return $resultRedirect;
}
// exit();
}
}