复选框条件数据库融合



我想做的是:

我有这两个人的列表,男孩和女孩,在一个数据库内的循环中,给他们投票的人,但条件是只能投票给一个女孩和一个男孩。我正在尝试使用以下代码:

<script type="text/javascript">
$('input:checkbox').click(function() {
  $(this).parent().addClass('profile-check');
  if ($('input[type=checkbox]:checked').length > 2) {
    $(this).prop('checked', false)
    alert("Allowed only 2 votes.");
    $(this).prop('checked', false).parent().addClass('profile-error')
    //$('input:checkbox').not(this).prop('checked', false).parent().removeClass('bgcheck'); }
});
</script>

但结果是人们可以检查两个,这包括男孩和男孩或女孩和女孩,而不仅仅是一个男孩和一个女孩。

代码:

<cfquery name="data" datasource="#dbMarks#">select left(tutgroup,2) as anio,appaterno,apmaterno,nombres,house,codigo,tutgroup   from studentCand 
where (tutgroup like 's4%' or tutgroup like '5B%')
group by left(tutgroup,2),appaterno,apmaterno,nombres,house,codigo,tutgroup
order by left(tutgroup,2) desc,appaterno,apmaterno,nombres
</cfquery>
<div class="container">
<div class="row mtc">
    <cfoutput query="data" group="anio">
    <cfoutput>  
        <div class="col-xs-12 col-sm-4 col-md-3 col-lg-2 profile-chart">
            <div class="portrait-settings">
            <img src="http://intranet.markham.edu.pe/istaff2/photos_students/#codigo#.jpg" width="65px">
            </div>          
            <div class="details-chart">     
            <p class="mtc"><strong>#appaterno#</strong>, #nombres#</p>
            <span class="mtc">#anio# - </span>
            <span>#house#</span>
            <span>
            <input  type="checkbox" name="codigos"  value="#appaterno# #apmaterno# #nombres# (#tutgroup#)" required>
            </span>
            </div> 
        </div>
    </cfoutput>  
    </cfoutput>  
</div>
</div>

为了能够做您想做的事情,您首先需要有一种方法来从数据集中判断哪些学生是男性(男孩),哪些是女性(女孩)。我无法从你的查询中判断是否有一个字段允许你这样做,所以我将假设你可以通过查询中的更改来获得该信息。在本例中,我假设数据库中有一个用于学生性别的字段,名为gender

一旦你有了一个告诉你学生是男孩还是女孩的文件,你就可以用单选按钮来代替复选框来解决你的问题。然后,您将为男孩和女孩分别选择一个值,并且不需要添加任何JavaScript验证来强制执行它。下面的代码是这样做的:

<cfquery name="data" datasource="#dbMarks#">
  select left(tutgroup,2) as anio, appaterno, apmaterno, nombres, house,
    codigo, tutgroup, gender  
  from studentCand 
  where (tutgroup like 's4%' or tutgroup like '5B%')
  group by left(tutgroup,2),appaterno, apmaterno, nombres, house, codigo, 
    tutgroup, gender
  order by left(tutgroup,2) desc,appaterno,apmaterno,nombres
</cfquery>
<div class="container">
  <div class="row mtc">
    <cfoutput query="data" group="anio">
        <div class="col-xs-12 col-sm-4 col-md-3 col-lg-2 profile-chart">
        <div class="portrait-settings">
          <img src="http://intranet.markham.edu.pe/istaff2/photos_students/#codigo#.jpg" 
           width="65px">
        </div>          
        <div class="details-chart">     
          <p class="mtc"><strong>#appaterno#</strong>, #nombres#</p>
          <span class="mtc">#anio# - </span>
          <span>#house#</span>
          <span>
           <cfif gender eq 'male'>
            <input  type="radio" name="boy"  value="#appaterno# #apmaterno# #nombres# (#tutgroup#)">
           <cfelse>
            <input  type="radio" name="girl"  value="#appaterno# #apmaterno# #nombres# (#tutgroup#)">
           </cfif>
         </span>
       </div> 
    </div> 
  </cfoutput>  
</div>
</div>

注意,因为您有两组单选按钮,一组名为boy,另一组名为girl,因此您每次只选择一个男孩和一个女孩。

最新更新