Вот не в какую не отправляется POST запрос

Проблема заключается в том что $_POST['section_name'] == ПУСТО и $_POST['section_code'] == ПУСТО

Показываю саму отправку запроса:

<div class="modal-body">
    <div class="mx-auto">
         <form id="form_new_section" method="POST" action="/mvc/admin_catalog_sections/add/">
          <div class="form-group">
            <label for="section_name">Название категории</label>
            <input type="text" required="required" class="form-control" name="section_name" value="" id="section_name"/>
          </div>
          <div class="form-group">
            <label for="section_code">Код категории</label>
            <input type="text" required="required" class="form-control" name="section_code" value="" id="section_code"/>
          </div>
          <div class="form-group">
            <label for="parent_section">Родительская категория</label>
            <select class="form-control" name="parent_section" id="parent_section">
              <option>1</option>
              <option>2</option>
              <option>3</option>
              <option>4</option>
              <option>5</option>
            </select>
          </div>
        </form>
        </div>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-primary" id="add_new_section" onclick="add_new_section()">Добавить</button>
  </div>

Я использую bootstrap 4 Делаю запрос к методу.

введите сюда описание изображения

Сам он хорошо вызывается, могу вывести сообщение. Но вот сами $_POST пустые, просто не чего нет.

Код метода:

public function add(){
    if(isset($_POST['section_name']) && isset($_POST['section_code'])){
        echo "Есть контакт!";
    }else{
        echo "Нет контакта";
    }
    $name = htmlspecialchars($_POST['section_name']);
    $code = htmlspecialchars($_POST['section_code']);
    $parent_id  = htmlspecialchars($_POST['parent_section']);
    var_dump($name, $code, $parent_id);
    if($name != '' && $code != ''){
        $params = array(
            ':name' => $name,
            ':code' => $code,
            ':parent_id' => NULL,
            ':dept_level' => NULL,
        );
        if($id = $this->model->add($params)){
            echo json_encode(array("error" => "false", 'success' => "true", "new_id" => $id));
        }else{
            echo json_encode(array("error"=>"true"));
        }
    }
}

Я уже в ступоре! Не понимаю уже что делать. Вроде бы все хорошо, название соответствует.

Еще при нажатие кнопки вызываю функцию из js кода.

function add_new_section(){
form = $("#form_new_section");
if(form[0].checkValidity() === false){
    form.addClass('was-validated');
}else{
    $.ajax({
        url: form.attr('action'),
        type: 'post',
        dataType: 'json',
        success: function( json ){
            console.log('123');
        } 
    })
}

}

Не понимаю в чем может быть проблема? Вроде бы все хорошо написано, все как и должно быть, но ответ от section_name и section_code вот такой: введите сюда описание изображения

В php, html, css, js я пока что новичок. Возможно я делаю что то не так? Но вот с регистрацией и входом все отлично. Помогите пожалуйста!


Ответы (1 шт):

Автор решения: InDevX

Для того, чтобы передать какие-то данные нужно использовать параметр data:

$.ajax({
  url: form.attr('action'),
  type: 'post',
  dataType: 'json',
  // добавляем параметр и вводные данные
  data: {
    section_name: $('[name="section_name"]').val(),
    section_code: $('[name="section_code"]').val(),
    parent_section: $('[name="parent_section"]').val()
  },
  success: function( json ){
    console.log('123');
  } 
})
→ Ссылка