0

我正在尝试在 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 的寻呼机按钮发布在当前“页面”上的复选框值。在脚本中保留警告行,我确实看到了所有正确的复选框值。

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

4

3 回答 3

0

我想我今天很早就解决了这个问题,在寻找其他问题时我发现你的问题,这是我的解决方案

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

// 您必须为此示例创建一个 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
    }

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

于 2012-06-05T20:54:24.310 回答
0

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>
于 2012-06-01T15:25:34.203 回答
0

确保您已删除return false;alert("以下数据将被提交到服务器:\n\n"+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;
} );
于 2012-06-01T15:25:47.377 回答