Отправка формы AJAX на основе идентификатора не работает

Хорошо, моя отправка формы AJAX не работает, и я в тупике. Ниже моего описания кода.

Код AJAX

<script>
  $(function () {
    $('#addcomp_form').on('submit', function (e) {
      e.preventDefault();
      $.ajax({
        type: 'post',
        url: '../inc/dataforms/addcompany.php',
        data: $('#addcomp_form').serialize(),
        success: function () {
          alert('company form was submitted');
        }
      });

    });

  });
</script>

HTML-форма

  <form id = "addcomp_form">
      <div class = "form-group">
          <input class = "form-control" name = "name" placeholder = "Company Name">
          </input>
      </div>
      <div class = "form-group">
          <label>Customer Type :</label>
          <label class = "checkbox-inline">
              <input name = "type[]" type = "checkbox" value = "1">
                  Customer
              </input>
          </label>
          <label class = "checkbox-inline">
              <input name = "type[]" type = "checkbox" value = "2">
                  Supplier
              </input>
          </label>
      </div>
      <div class = "form-group">
          <input class = "form-control" name = "regno" placeholder = "Registration No."></input>
      </div>
      <div class = "form-group">
          <input class = "form-control" name = "vatno" placeholder = "VAT Registration No."></input>
      </div>
      <div class = "form-group">
          <textarea class = "form-control" cols = "5" name = "regaddress" placeholder = "Registered Office Address" rows = "4"></textarea>
      </div>
      <button class = "btn btn-primary" type = "submit">Add Branch</button>
  </form>

Код PHP

 include('../config.php');
 $types = implode(":",$_POST['type']);
 mysqli_query($dbc,"INSERT INTO `comp_companies` (company_id,company_name,company_type,registration_no,vat_number,registered_office_address) VALUES (,'$_POST[name]','$types','$_POST[regno]','$_POST[vatno]','$_POST[regaddress]')");

Если кто-нибудь может оказать какую-либо помощь, был бы очень признателен

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
66
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Проверить внимательно

(,'$_POST[name]',...

Возможно, в этом и заключается ваша проблема. Обязательно удалите запятую или файл в поле Отсутствует сообщение, которое, возможно, является идентификатором компании.

Вы также можете выполнить Extra Debug, добавив функцию ошибки ajax в свой код ajax, распечатав ошибку в console.info ()

$(function () {
   $('#addcomp_form').on('submit', function (e) {
   e.preventDefault();
   $.ajax({
     type: 'post',
     url: '../inc/dataforms/addcompany.php',
     data: $('#addcomp_form').serialize(),
     success: function () {
       alert('company form was submitted');
     },
     error: function(jqXHR, exception) {
       var message;
       if (jqXHR.status === 0) {
         message = 'Not connect.\n Verify Network.';
       } else if (jqXHR.status == 404) {
         message = 'Requested page not found. [404]';
       } else if (jqXHR.status == 500) {
         message = 'Internal Server Error [500].';
       } else if (exception === 'parsererror') {
         message = 'Requested JSON parse failed.';
       } else if (exception === 'timeout') {
         message = 'Time out error.';
       } else if (exception === 'abort') {
         message = 'Ajax request aborted.';
       } else {
         message = 'Uncaught Error.\n' + jqXHR.responseText;
       }
       console.info(message);
     }
   });
  });

});

это `` не а '' (в запросе sql)

Вы создаете событие отправки для определенного идентификатора, и у вас не может быть нескольких форм с одним и тем же идентификатором.

Либо вы можете пойти на:

$(SELECTOR).submit( function (e) {
//your logic
});

Или можете попробовать:

$(document).on("EVENT", "SELECTOR", function (e) {
//your logic
});

Запрос должен быть таким:

 mysqli_query($dbc,"INSERT INTO `comp_companies` (company_id,company_name,company_type,registration_no,vat_number,registered_office_address) VALUES (".$_POST[name].",".$types.",".$_POST[regno].",".$_POST[vatno].",".$_POST[regaddress].")");

Если у вас есть данные строкового типа, используйте одинарную кавычку:

('".$_POST[name]."')

Если целочисленные данные:

(".$_POST[name].")

Другие вопросы по теме