2012-05-08 44 views
0
<html> 
    <input type='checkbox' id='1' name='checkMr[]' value='1' />  
    <input type='checkbox' id='2' name='checkMr[]' value='2' />    
    <input type='checkbox' id='3' name='checkMr[]' value='3' />   
    <input type='checkbox' id='4' name='checkMr[]' value='4' />   

    <a id="savedoctorschedule" style="float: right;" class="clyes clbutton clbtnSave">Save</a>  
</html> 

<script> 
$j("#savedoctorschedule").bind("click", function() { 
    $j.ajax({ 
     url: "schedulemr.php", 
     type: "post", 
     data: { schmrid: $j("#sel_mr").val(), 
     schedocid: $j("#checkMr[]").val(), 
     schedate: $j("#date1").val(), }, 
     success:function(response){   
     } 
</script> 

<?php 
include '../includes/include.php'; 
$schmrid = $_POST['sel_mr']; 
$schedate = $_POST['date1']; 
$schedocid = $_POST['checkMr']; 
foreach($schedocid as $a => $b) 
{ 
    $sql="INSERT INTO tbl_mr_schedule(doctor_idscheduled_date) 
    VALUES ('".$schedocid[$a]."','".$schmrid."','0','".$date."','".$schedate."');"; 
    mysql_query($sql) or die(mysql_error()); 
} 
header('Location:../visitplan/'); 
?> 

我想要使用jQuery選中複選框的所有ID;該複選框可能是n號碼。我想在數據庫中插入選中的複選框的值,其中記錄的數量將取決於選中的複選框的數量。這將使用PHP作爲服務器端腳本。如何獲取按鈕點擊使用jQuery的所有選中的複選框的ID

我該如何解決?

回答

1

由於以下原因,您的文檔無效。跳過顯而易見(丟失文檔類型/ <body>/etc),id屬性可能不以數字開頭; id="1"無效。您必須使用非數字前綴,如id="check-1"或將該ID指定爲複選框的value

修復此問題後,您可以使用以下命令查找所有選中的複選框,並檢索它們的值(或您選擇使用的任何屬性)。

$("input:checked").map(function() { return $(this).val(); }); 
+0

這個ID是從表中的記錄ID動態地分配。所以它是數字 –

+2

它**不能**是數字。它不會工作。這就是我要告訴你的。你必須使用另一個屬性或者添加一個'check-'前綴,然後將其剝離。 – meagar

+2

大多數瀏覽器都會識別數字「id」值,儘管它們在HTML 4中是不允許的。(HTML5允許它們)[請參閱http://jsfiddle.net/aRJc7/)。這是一個壞習慣,但不太可能破壞任何代碼。 – Blazemonger

3

下面嘗試,

$(':checkbox[name="checkMr[]"]:checked') //returns you the list of selected checkbox 

那麼你可以,

var selectedID = []; 
$(':checkbox[name="checkMr[]"]:checked').each (function() { 
    selectedID.push(this.id); 
}); 

DEMO

+0

請再次通過它我已更新的東西 –

0

標識的不能以數字開頭。一旦你更新了id的使用attr('value')或.val()來檢索與輸入相關的值。

+0

要解決您的原始問題,請使用以下代碼來查詢所有選中的元素: $('。input-container input:checked'); 然後使用for循環或jQuery的.each()函數遍歷返回的元素並提取所需的數據。 – Cole

1
$("#savedoctorschedule").click(function(e){ 
    e.preventDefault(); 
    var sList = ""; 
    $('input[name="checkMr[]"]').each(function() { 
     if(this.checked){ 
      sList += "(" + $(this).attr('id') + ")"; 
     } 
    }); 
    alert(sList); 
    } 
);​ 

請找到FIDDLE

相關問題