使用$ .ajax发布多个复选框

时间:2015-04-09 07:49:00

标签: javascript php jquery ajax checkbox

我正在尝试发布一个包含输入文本,textarea和带有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)并且未插入数据。网址也改为:

  ?

的index.php复选框[] = 3及复选框[] = 4和;复选框[] = 5

取决于选中的复选框。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以在php文件的最后一个放置一个echo语句来解决错误问题。像

echo 1;

如果保存是提交按钮,则更新第一行:

$(document).on('click', '#save', function(event) {
 event.preventDefault();
 .....

});

要解决数据库插入问题,请尝试包含所需文件的完整路径,而不是相对路径。