我有一个大问题。这是代码:
<tr>
<td width="50%">
<select id="ptype" name="ptype" class="required" style="width: 320px; float:left;" SIZE=14 onChange="selecttype(); CategoryGrab('<?php echo $_SERVER["SITE_HTMLROOT"];?>/sell/leftsell_catselect.php?idPtype='+this.value);">
<?php
$namesub=$langid."_name";
$result = mysql_query ( "SELECT id, $namesub FROM ptype_new ORDER BY $namesub");
while($row = mysql_fetch_array($result)){
echo "<option value=".$row[0].">".$row[1]."</option>";
}?>
</select>
</td>
<td width="50%">
<div id="categories">
<div class="control-group" style="width: 320px">
<input type="checkbox" class="chkAll" name="chkall"> All <br/>
<?php
$namecat=$langid."_name";
$result = mysql_query ( "SELECT categories.id, categories.$namecat FROM categories LEFT JOIN ptype_new ON ( ptype_new.catid LIKE concat( '%::', categories.id, '::%' ) ) WHERE ptype_new.id =12" ) or die(mysql_error());
while($row1 = mysql_fetch_array($result)){
echo '<input type="checkbox" name="'.$row1[1].'" value="'.$row1[0].'">'.$row1[1].'<br/>';
} ?>
</div>
</div>
</td>
</tr>
这是JS代码:
<script type="text/javascript">
$(document).ready(function() {
$('.chkAll').click(function() {
$(this).parents('.control-group').children(':checkbox').not('.chkAll').attr('checked', this.checked);
});
$('.chkAll').parents('.control-group').children(':checkbox').not('.chkAll,:checked').click(function() {
$(this).parents('.control-group').children('.chkAll').attr('checked', false);
});
});
复选框的值来自SQL查询。 “CHECK ALL”复选框仅在第一个视图中起作用。 问题是值的变化取决于$ _POST $ id和....以及“CHECK ALL”不再起作用。
我该如何解决?
谢谢
答案 0 :(得分:0)
也许你的代码可以像这样编写:
$(document).ready(function() {
$('#categories').on('change','.chkAll',function() {
$('.chkAll ~ input[type="checkbox"]',this.parentNode).prop('checked', $(this).prop('checked'));
});
$('#categories').on('change','.chkAll ~ input[type="checkbox"]',function(){
$(this).siblings('.chkAll').prop('checked',false);
});
});