如何将复选框表单元素发布到 PHP 脚本中


how can I post checkbox form elements to a PHP script?

我正在尝试提交一个表格,其中包含 datatables.net 表中的复选框元素。

这个例子说明了我想做什么:http://www.datatables.net/examples/api/form.html

但是我希望发布值而不是警报消息(对 PHP 脚本使用表单操作)

我添加了这一行...

<form id="form" action="test.php" method="post">

并删除了警报...

alert( "The following data would have been submitted to the server: 'n'n"+sData );

但是我的 PHP 脚本只能看到使用 datatables.net 的寻呼机按钮在当前"页面"上发布的复选框值。将警报行保留在脚本中,我确实看到了所有正确的复选框值。

如何删除警报并将序列化数据发布到我的测试.php脚本?

jquery:

$('#submit_to_test').click(function(){
  $.ajax({
  type: "POST",
  url: "test.php",
  data: $('#form').serialize(),
  success: function(data){
    alert(data);
  }
  });
});

在 html 中添加一个带有 id 的按钮,例如:

<button id="submit_to_test">Submit</button>

确保已删除返回 false;警报下方( "以下数据将提交到服务器:''"+sData );

您还可以删除如下所示的整个表单提交功能,因为它不再需要

    $('#form').submit( function() {
    var sData = $('input', oTable.fnGetNodes()).serialize();
    alert( "The following data would have been submitted to the server: 'n'n"+sData );
    return false;
} );
我想

我今天早些时候解决了这个问题,在寻找其他东西时,我发现了你的问题,这是我的解决方案

这将选中所有复选框或取消选择

对于此示例,您必须为"全选"工作创建一个 ID 为"ib_seleccionar_todos"的隐藏输入另一个名为"is_seleccionados"的输入用于发送到另一个 PHP 页面

注意:此处的对象数据表名为"tbl_buscar_exalumnos_Table",将其更改为您使用的

$('#lnk_opt_seleccionar_todos').click( function(event){
    if ( $("#ib_seleccionar_todos").val() == 0 ){
        $(':input:checkbox.chk_seleccionado', tbl_buscar_exalumnos_Table.fnGetNodes()).attr("checked", "checked");
        $("#ib_seleccionar_todos").val(1);
    } else {
        $(':input:checkbox.chk_seleccionado', tbl_buscar_exalumnos_Table.fnGetNodes()).removeAttr("checked");
        $("#ib_seleccionar_todos").val(0);
    }
    event.preventDefault();
});
$("#btn_agregar_mailing").click( function(){            
     $("#frm_mailing").submit(); 
});
$('#frm_mailing').submit( function() {
    var sData = $('input', tbl_buscar_exalumnos_Table.fnGetNodes()).serialize();
    $('#is_seleccionados').val(sData);
});

那个,将创建一个序列化数组。像这样的东西

 [is_seleccionados] => chk_seleccionado%5B%5D=9755396&chk_seleccionado%5B%5D=9907119&chk_seleccionado%5B%5D=12955872&chk_seleccionado%5B%5D=13023863

我在接收页面中像这样爆炸的那个

$is_seleccionados  = $_POST["is_seleccionados"];
$ia_arma_selecciondos = explode("&", $is_seleccionados );
    foreach( $ia_arma_selecciondos  as $key => $value ){
        $ia_rut_selecc = explode("=", $value );
        $ia_seleccionado[] = $ia_rut_selecc[1];
    }
    $ia_seleccionado = array_values( array_unique($ia_seleccionado) );
    // $ia_seleccionado = array_values($ia_seleccionado);
    foreach( $ia_seleccionado  as $key => $ii_rut_value ){
       //DO SOMETHING with $key or $ii_rut_value
    }

希望工作。里卡多·穆尼奥斯智利万岁!