Организация формы обратной связи на Symfony

123
03 мая 2019, 07:20

В symfony новичок, стоит задача связать готовую форму со скриптом отправки аяксовым методом. Как это можно сделать? Ниже привел код html,js,php

HTML

<form id="cb_form" method="post">
     <span class="cb_form_title">Оставить заявку на обратный звонок</span>
     <span class="cb_form_close"></span>
     <input type="hidden" name="urlval" value="{{thisURL}}"/>
     <div class="cb_in_bl" id="cb_in_f">
          <label for="name" id="cb_form_l_name">Имя</label>
          <input type="text" name="name" id="cb_form_i_name"  value="{{name}}" />
     </div>
     <div class="cb_in_bl" id="cb_in_s">
          <label for="phone" id="cb_form_l_phone">Телефон</label>
          <input type="text" name="phone" id="cb_form_i_phone" value="{{phone}}" />
     </div>
     <div class="cb_changer">
          <span class="cb_f_c"><span class="cb_f_c_a"></span></span>
          <span class="cb_f_t">Связаться позднее?</span>  
     </div>
     <div class="cb_in_bld" style="margin-top: 0">
          <label for="date">Дата</label>
          <input type="date" name="dateval" value="{{date_year_main}}-{{date_month_main}}-{{date_day_main}}">
     </div>
     <div class="cb_in_bld">
          <label for="time">Время</label>
          <input type="time" name="timeval" value="{{time_hour_main}}:{{time_minute_main}}" step="900" min="09:00" max="17:00">
     </div>
     <button>Заказать звонок</button>
</form>

JS

$("#cb_form").submit(function() {
    $.ajax({
        type: "POST",
        url: "/callback",
        data: $(this).serialize()
    }).done(function() {
        $(this).find("input").val("");
        alert("Спасибо за заявку!");
        $("#cb_form").trigger("reset");
    });
    return false;
});

PHP

Controller

public function cb_send () {
        $recepient = "mail@mail.ru";
        $sitename = "Sitename";
        $name = trim($_POST["name"]);
        $phone = trim($_POST["phone"]);
        $message = "Имя: $name \nТелефон: $phone";
        $pagetitle = "Новая заявка с сайта \"$sitename\"";
        mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient");
}

Router

$routes->add('users_callback', new Route(
        '/callback', [
    '_action' => 'R_NAME\CMS\Core\User\Controller\CallbackController::cb_send',
    'ajax' => '',
    'ID' => -1], ['ajax' => '^$|ajax']
        )
);

Не очень понимаю связь между всеми элементами, какие данные куда и как передаются.

При отправке формы сейчас - выдает done на js, но само письмо не приходит. Письмо должно отправляться именно с этой страницы. Аяксом переводить на другую - не обязательно

READ ALSO
Как каждый раз при выполнение скрипта увеличить переменную на 1 значение? [закрыт]

Как каждый раз при выполнение скрипта увеличить переменную на 1 значение? [закрыт]

Нужно сделать так чтобы каждый раз при выполнение скрипта допустим переменная $result увеличивалась на 1, то есть в первый раз 0 второй 1 и так...

145
Вывод og:image в bitrix (news.detail)

Вывод og:image в bitrix (news.detail)

В файле /тема/components/bitrix/news/catalog/bitrix/newsdetail/

138
Winsock передача прием матриц типа vector

Winsock передача прием матриц типа vector

Проблема таковаЕсть 2 сервера и 1 клиент

154