我试图用ajax发布一个包含输入文本、文本区域和14复选框的表单。其想法是根据选中复选框的数量将一些数据插入到表dbdata中。
这是script.js:
$(document).on('click', '#save', function(event) {
//action
var url = "aksi.php";
//an input text
var v_id = $('input:text[name=id]').val();
//a textarea
var v_note = $('#note').val();
//some checkboxes
var v_checkbox =[]
$("input[name='checkbox[]']:checked").each(function ()
{
v_checkbox.push(parseInt($(this).val()));
});
//ajax
$.ajax({
url: url,
type: "POST",
data: {id: v_id,note: v_note,checkbox:v_checkbox },
success: function (data, status){
alert("success!")
},
error: function(xhr,err){
alert("readyState: "+xhr.readyState+"'nstatus: "+xhr.status);
alert("responseText: "+xhr.responseText);
}
});
});
这是aksi.php:
require "../../config/db.php";
$id=$_POST['id'];
$checkbox= $_POST['checkbox'];
$note=$_POST['note'];
foreach ($checkbox as $key => $check_box) {
mysqli_query($con,"INSERT INTO dbdata(id, checkbox, note) VALUES($id, $check_box, '$note')");
}
问题是数据从未发布。ajax抛出错误(readyState=0,status=0),数据未插入。url也更改为:
index.php?checkbox[]=3&checkbox[]=4&复选框[]=5
取决于选中了哪个复选框。知道吗?
您可以在php文件的最后放一条echo语句来解决错误问题吗。像
echo 1;
如果保存是提交按钮,更新第一行如下:
$(document).on('click', '#save', function(event) {
event.preventDefault();
.....
});
要解决数据库插入问题,请尝试包含所需文件的完整路径,而不是相对路径。