2012-06-28 59 views
0

我想創建一組複選框,我可以檢查並通過ajax發送。通過Ajax的jquery和複選框數據

我正在尋找理想地做的是通過AJAX來發送一些信息到PHP腳本,the checkbox that has been checked也是一個id

id是基於URL的,所以我可以得到使用$_GET['id']

所以,如果用戶選中這兩個框,需要發送到PHP腳本中的值將是:

53 57 1 - 在這個值是在URL中的值。

我有以下至今:

<input type="checkbox" name="test[]" value="53" id="part_shipping" /> 
<input type="checkbox" name="test[]" value="57" id="part_shipping" /> 
<input name="confirm" type="button" value="confirm" /> 

<script type="text/javascript" src="http://code.jquery.com/jquery.js"></script> 
<script type="text/javascript"> 

$('input[type=button]').click(function() { 
    $(":checked").each(function() { 
    var value = $(this).val(); 
     id = 'id:1'; 
     data = 'shipping:' + value; 
     console.log(data); 
    }); 
    $.post("ajax.php", data); 
}); 

</script> 

如何追加數據中的ID,所以它讀取: shipping:53 shipping:57 id:1

+0

可能在渲染頁面時將id放在隱藏字段中? (但我認爲隱藏的領域是不好的做法) –

+0

但我如何得到'數據'?將它追加到'data'的末尾給出'531','571'等我需要'53','57','1' – terrid25

+0

使用$ _GET ['id']從url獲得id,然後add它到另一個領域。沿着'echo'的行';'你將不得不將隱藏的字段發送到ajax.php。 –

回答

0

如果<input>標籤還不是<form>內,再加入一個:

<form id="myForm"> 
    ... 
    <input type="checkbox" name="test[]" value="53" id="part_shipping" /> 
    <input type="checkbox" name="test[]" value="57" id="part_shipping" /> 
    <input name="confirm" type="button" value="confirm" /> 
    ... 
</form> 

現在,你可以使用jQuery的.serialize()來組成一個數據串格式的「名1 =值1 & 2 =值2 & NAME3 =數值3」等,其中的名稱作爲HTML給出:

$(function() { 
    $('input[type=button]').click(function() { 
     $.post("ajax.php", $("#myForm").serialize()); 
    }); 
}); 

複選框只會出現在序列化形式,如果他們被選中。我想我說的是該按鈕不會包含在序列化中。

這樣做的好處是,腳本是響應設計形式的變化。如果您添加或刪除字段,則不需要更改javascript。