2014-04-22 68 views
2

需要一點幫助。 我有這樣的: enter image description hereAjax,複選框和PHP

它允許用戶選擇一個以上的項目,我需要收集如果選擇什麼值是該項目在這種情況下的稱號。

我也有這個當前的ajax:

$('.box').on('change', function(event) { 


     var valueName = $('#box').val(); 



      var checked = $('input[name=checked]:checked'); 
      if(checked.length > 0) { 
        var checkValues = checked.map(function(){ 
         return $(this).val(); 
        }).get();       
        $.ajax({ 
          url: 'accessories_post.php', 
          type: 'post', 
          data: { checked: checkValues }, 
          success:function(data){ console.log(data); } 
        }); 
       } 

哪個職位,以accessories_post.php具有

print_r($_POST['checked']); 

但是當我想抓住這個數據,並放入一個變量,我需要然後通過郵件發送任何想法,爲什麼我沒有得到任何東西。

+0

這是prob可愛的陣列。你必須循環。 –

+0

的foreach($ _POST [ '檢查']爲$選中) $檢查 endforeach ?? –

+0

你是不是在用''checked'變量做任何事情..? –

回答

2

取而代之的是.map功能,你可以簡單地做:

checkValues = ''; 
$('input[name="checked"]:checked').each(function(){ 
    checkValues+=$(this).val()+","; 
}); 
//this is to remove the extra comma , at the end of the string 
checkValues = checkValues.substring(0,(checkValues.length-1)); 

我串接的複選框值,因此$_POST['checked']將返回值一樣標題,標題2

而關於你所要求的id價值的增量,你可以這樣做:

$i=0; 
//your loop statement starts 
echo "<input type='checkbox' id='box{$i}' name='checked'>"; 
$i++; 
//loop ends 
+0

好的,謝謝讓我試試這個。 –

+0

因此,在所選部分的mail()函數中,我只是說$ _POST ['checked']; ?? –

+0

@the_unforgiven_II是的。但是考慮一下點擊按鈕來運行你的AJAX,而不是改變每個複選框。 –