2017-05-23 35 views
1

我試圖獲得一個PHP做while循環內的複選框的值,將選定的項目值傳遞給進程頁面(get-mod.php)我正在使用下面的代碼,但我的控制檯返回[object NodeList]任何建議將有所幫助。使用ajax傳遞一個具有多個值的複選框的值

我的PHP做while循環。

$i = 1; 

do{ 

echo '<input type="checkbox" name="checkboxG[]" id="checkboxG'.$i.'" class="css-checkbox" checked="checked" value="'.$row['modelID'].'" /><label for="checkboxG'.$i.'" class="css-label">'.summary($row['model']).'</label><br/>' ; 

$i++; 

}while($row = mysql_fetch_assoc($c)); 

我的ajax代碼。

$(document).on('change','.css-checkbox',function(){ 

         var list = document.getElementsByName('checkboxG[]'); 
         console.log("Getting data for "+list); 

      $.ajax({ 
       type: 'POST', 
       url:'get-mod.php', 
       data:'getID='+list, 
       success:function(html){ 

        $('#result1').html(html); 

       } 
      }); 
     }); 

我試圖通過與RESULT1的ID的DIV中的結果,這是我的PHP代碼(GET-mod.php),但現在我只是想回到選擇複選框的值。

$r = $_POST['getID']; 

print_r($r); 
+0

你應該使用'$(this)'來獲得他們改變的複選框。你不需要區分該框是選中還是取消選中? – Barmar

+0

你的循環是錯誤的。它應該是'while'循環,而不是'do-while'循環,因爲在將值放入複選框之前,您需要獲取行*。 – Barmar

+1

如果你用一個特定的ID封裝你的複選框,你可以通過'$(「form-id」)。serialize()'。這就是全部 –

回答

1

您可以試試這個解決方案。

var data = { 'getID[]' : []}; 
$("input:checked").each(function() { 
    data['getID[]'].push($(this).val()); 
}); 

而且還

data:data, 

然後在PHP打印$ _ POST文件,你得到的所有選定的數據。

+0

這很好用!謝謝! – KaoriYui