0
var dataArray = $('input:checkbox:checked').map(function() {
    return this.value;
}).get();

$.ajax({
    type: 'POST',
    url: 'showdata.php',
    data: {data : dataArray},
    success: function(data) {
        //only the value of last selected checkbox value is returned ,
// but when I alert the dataArray then it shows all values separated with commas.
            alert('response data = ' + data);
        }
    });

显示数据.php

$data = ''; 

if (isset($_POST['data']))
{
    $data = $_POST['data'];
}



echo $data;
4

2 回答 2

1

你应该使用$("input:checked"),而不是$('input:checkbox:checked')

Javascript:

var dataArray = {'data': $("input:checked").map(function() {
    return this.value;
}).get()};

$.ajax({
    type: 'POST',
    url: 'showdata.php',
    data: dataArray,
    success: function(data) {
        alert('response data = ' + data);
    });

PHP:

$data = ''; 

if (isset($_POST['data']))
{
    $data = implode(', ', $_POST['data']);
}



echo $data;
于 2012-10-28T12:31:16.843 回答
0

它不是$_POST作为data键出现,而是作为控制名称(序列化)或您给出的显式键名(显式示例)。

成功回调将获得数据的结果,即您的 PHP 文件输出的内容。

$.ajax({
    type: 'POST',
    url: 'showdata.php',
    data: $("myformid_in_html").serialize(),
    success: function(data) {
        //only the value of last selected checkbox value is returned ,
        // but when I alert the dataArray then it shows all values separated with commas.
        alert('response data = ' + data);
    }
});

在上面的例子中,如果你把所有的复选框放在一个表单中,你可以一次把它们全部拿走。

或明确:

$.ajax({
    type: 'POST',
    url: 'showdata.php',
    data: {
        mypostvar: "testing_service",
        myotherpostvar: 1
    },
    success: function(data) {
        //only the value of last selected checkbox value is returned ,
        // but when I alert the dataArray then it shows all values separated with commas.
        alert('response data = ' + data);
    }
});

然后你在里面有他们的名字:

$data = ''; 

if (isset($_POST))
{
    $data = $_POST['myformfield_html_name'];
    // or
    $mypostvar = $_POST['mypostvar'];
    $myotherpostvar = $_POST['myotherpostvar'];
}

这是主要问题,您没有正确处理 POST 数据。该复选框仅在选中时才会出现在 POST vars 中,否则您将无法在其中找到它。

于 2012-10-28T12:31:18.537 回答