0

大きな問題があります。コードは次のとおりです。

<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" が機能しなくなったかどうかに応じて、 の値が変化することです。

どうすれば修正できますか?

ありがとうございました

4

1 に答える 1

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);
    });
});
于 2012-07-05T16:06:53.617 に答える