0

私は結果(文字列)を持っています1,1,0,0- これらはから来ています$sub_array['state']

現在、すべてのチェックボックスがオンになっています。以下のコードをどのようにコーディングすれば、1チェックされている場合はチェックされているか、そうでない場合はそうではありませんか? 現在のコードはそれらすべてを「チェック済み」にするため

<?php

    foreach($assoc_categories as $sub_array)
    {
        if($sub_array['state'] == 1)
        {
            $checked_state = " checked='checked'";
        }                  
?>
<div>
    <input 
        class="checkbox" 
        type="checkbox" 
        name="product_category" 
        class="product_category_selector" 
        id="product_category_<?php echo $sub_array['cat_id']; ?>" 
        data-id="<?php echo $sub_array['cat_id']; ?>" 
        <?php echo $checked_state; ?> 
    /> 
    <?php echo $sub_array['name']; ?>
</div>
<input 
    class="order" 
    type="input" 
    value="<?php echo $sub_array['sorder']; ?>" 
/>
<?php
    }
?>
4

2 に答える 2

1

変化する:

if($sub_array['state'] == 1)
{
    $checked_state = " checked='checked'";
}

に:

if($sub_array['state'] == 1)
{
    $checked_state = " checked='checked'";
} else 
{
    $checked_state = "";
}

基本的に、ループが続くため、以前の値をクリアしていません。

または、次を使用できます。

$checked_state = ($sub_array['state'] == 1) ? " checked='checked'" : "" ;
于 2013-09-28T04:31:06.113 に答える
0

$sub_array['state'] が 0 の場合、checked_state をリセットするのを忘れるか、'' にリセットします。

<?php

    $assoc_categories = array(
        array('state'=>1, 'cat_id'=>1, 'name'=>'one',   'sorder'=>1),
        array('state'=>1, 'cat_id'=>2, 'name'=>'three', 'sorder'=>2),
        array('state'=>0, 'cat_id'=>3, 'name'=>'four',  'sorder'=>3),
        array('state'=>0, 'cat_id'=>4, 'name'=>'five',  'sorder'=>4),
    );

    foreach($assoc_categories as $sub_array)
    {
        $checked_state = $sub_array['state'] == 1 ? " checked='checked'" : '';
?>
<div>
    <input
        class="checkbox"
        type="checkbox"
        name="product_category"
        class="product_category_selector"
        id="product_category_<?php echo $sub_array['cat_id']; ?>"
        data-id="<?php echo $sub_array['cat_id']; ?>"
        <?php echo $checked_state; ?>
    />
    <?php echo $sub_array['name']; ?>
</div>
<input
    class="order"
    type="input"
    value="<?php echo $sub_array['sorder']; ?>"
/>
<?php
    }
于 2013-09-28T04:31:49.997 に答える