2012-06-01 50 views
0

我正在嘗試提交一個表格,其中包含一個datatables.net表格中的複選框元素。如何將複選框表單元素髮布到PHP腳本?

這個例子說明了什麼,我想做的事: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腳本?

回答

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> 
+0

謝謝,但我無法得到這個解決方案。看我測試:http://www.blankinside.co。uk/solution2.php – garethmurton

0

確保已刪除返回false;低於警報(「以下數據已提交給服務器:\ 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; 
}); 
+0

感謝您的建議。刪除'返回錯誤'並不能解決問題。查看我的示例:http://www.blankinside.co.uk/solution1.php - 嘗試從表格的多個「頁面」中選擇一個複選框。按提交後,$ _POST數組輸出到頁面的頂部。 – garethmurton

+0

從示例中的序言:「這裏的技巧是DataTables不包含當前未顯示的DOM元素,因此您需要添加提交事件處理程序以將表中的所有輸入元素聚集在一起,並且然後使用方便的jQuery serialize()函數將數據串起來。「 所以,也許我的問題應該是我要如何發佈變量SDATA從 '變種SDATA = $(「輸入」,oTable.fnGetNodes())序列化();使用線使用' 到我的PHP腳本... '

」method =「post」>' – garethmurton

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

的是,將使SERIALIZE陣列改變這一點。 像這樣

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

一個我在recieving頁面爆炸這樣

$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 
    } 

HOPE工作。 RicardoMuñoz Viva智利!

相關問題