Stack Overflow на русском Asked by Uvasya on November 24, 2021
как вернуть сообщение пользователю(вывести в форме отправки), при отправке формы?
<div id="form-one-pay" class="white-popup mfp-hide w-product-one">
<form class="sendOneClick" id="callAdd" action="" method="post">
<div class="white-content">
<div class="white-header">
<p class="modal-title-popup bold">Покупка в один клик</p>
</div>
<div class="white-body">
<p class="white-description">
Закажите звонок оператора и мы оформим ваш заказ, узнав детали
</p>
<div class="city__box">
<p>Ваш город</p>
<div class="city-select">
<div class="city-select_active">
<p class="active_city"><span>Москва</span> <svg><use xlink:href="#carret"></use></svg></p>
</div>
</div>
</div>
<input type="hidden" name="city" value="Москва">
<input type="hidden" name="product" value="{{ heading_title }}">
<input type="phone" name="name" required="" value="" placeholder="Введите ваш телефон">
<button type="button" class="btn-red one-click-send">Купить</button>
</div>
</div>
</form>
</div>
<script type="text/javascript"><!--
$('.one-click-send').on('click', function() {
$.ajax({
url: 'index.php?route=custom/modal/sendOneClick',
type: "POST",
dataType: "html",
data: $(".sendOneClick").serialize(),
success: function(data) {
alert(data);
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "rn" + xhr.statusText + "rn" + xhr.responseText);
}
});
});
//--></script>
контроллер
class ControllerCustomModal extends Controller {
public function sendOneClick(){
if (($this->request->server['REQUEST_METHOD'] == 'POST')) {
$this->load->model('custom/custom');
$data['subject'] = sprintf('Заказ в 1 клик');
$data['city'] = $this->request->post['city'];
$this->session->data['success'] = 'все супер';
$this->model_custom_custom->sendOneClick($data);
}
}
}
модель отправки
class ModelCustomCustom extends Model {
public function sendOneClick($data) {
// send email notification to store admin
$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
$mail->smtp_username = $this->config->get('config_mail_smtp_username');
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
$mail->smtp_port = $this->config->get('config_mail_smtp_port');
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');
$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'));
$mail->setSubject($data['subject']);
$mail->setText($data['city']);
$mail->send();
}
}
Класс Mail()
опенкарта дёргает стандартную php-функцию mail(), которая возвращает true/false
. Важно помнить, что:
* It is important to note that just because the mail was accepted for delivery,
* it does NOT mean the mail will actually reach the intended destination.
В ControllerCustomModal:
...
return $this->model_custom_custom->sendOneClick($data) // вернёт true/false;
В файле представления:
...
success: function(data) {
let statusMsg = 'Некий мессадж о Неудачной отправке письма';
if(data) { // потому, что удачное завершение ajax-запроса не гарантирует отправку письма
statusMsg = 'Некий мессадж о Удачной отправке письма';
}
$('#form-one-pay').append('<span>' + statusMsg + '</span>');
Answered by Kirill on November 24, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP