基于ID的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]')");

如果有人能提供任何帮助,我们将非常感谢

密切检查

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

这可能是你的问题所在,一定要去掉"丢失的帖子"字段中的逗号或文件,可能是公司ID

您还可以通过在ajax代码中添加错误ajax函数来进行额外调试,将错误打印到控制台中。log((

$(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);
}
});
});
});

它是一个"不是"(在sql查询中(

您正在为特定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].")

最新更新