Хорошо, моя отправка формы 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]')");
Если кто-нибудь может оказать какую-либо помощь, был бы очень признателен






Проверить внимательно
(,'$_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].")