好的,我的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]')");
如果任何人都可以提供任何帮助,将不胜感激
答案 0 :(得分:0)
仔细检查
(,'$_POST[name]',...
这可能是您的问题所在,请确保在“可能丢失的帖子”字段中取出逗号或文件,这可能是公司ID
您还可以通过将错误ajax函数添加到ajax代码中以在console.log()中打印出错误来进行Extra Debug
$(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.log(message);
}
});
});
});
答案 1 :(得分:0)
它是``not a''(在sql查询中)
答案 2 :(得分:0)
尝试一下。
<script>
$(function () {
$(document).on("submit", "#addcomp_form", function (e) {
$.ajax({
type: 'post',
url: '../inc/dataforms/addcompany.php',
data: $('#addcomp_form').serialize(),
success: function () {
alert('company form was submitted');
}
});
return false;
});
});
</script>
答案 3 :(得分:0)
您正在为特定ID创建一个提交事件,并且不能有多个具有相同ID的表单。
您可以选择:
$(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].")