2012-10-28 18 views
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); 
     } 
    }); 

showdata.php選中複選框值阿賈克斯後

$data = ''; 

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



echo $data; 
+0

在ajax函數中,您可能沒有'$ data = $ _POST ['data'];',您必須這樣做:'data:{data:dataArray}! – adeneo

+0

我已經改變了data:dataArray到data:{data:dataArray},但它仍然不起作用 – sqlchild

+0

你有這個代碼有多少問題? – StaticVariable

回答

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

仍然不起作用 – sqlchild

+0

@sqlchild我添加了一個完整的示例。 –

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變量中,否則您不會在裏面找到它。