2013-09-28 3 views
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 
    } 
?> 
+0

Как ваш «результат (строка) 1,1,0,0» относится к коду? Это значение одной из переменных? – IMSoP

+0

@IMSoP Да, это –

+0

Я собирался добавить «... если да, то какой?» но я думал, что это будет подразумеваться в моем вопросе. Видимо, нет, так: какая переменная '1,1,0,0' значение? – IMSoP

ответ

1

Изменение:

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

To:

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

В принципе, вы не очищая предыдущее значение как цикл продолжается.

В качестве альтернативы, вы можете использовать:

$checked_state = ($sub_array['state'] == 1) ? " checked='checked'" : "" ; 
+0

О, хорошо заметили. Я был занят, пытаясь понять этот вопрос, и не понял, что это была основная логическая ошибка! – IMSoP

0

Вы забыли сбросить checked_state или сбросить его в '', если $ sub_array [ 'состояние'] равно 0.

<?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 
    } 
Смежные вопросы