2013-01-15 2 views
4

저장 또는 새로 고침시 다중 선택으로 selected = "selected" 속성을 표시 할 수 없습니다.PHP (Wordpress) - 여러 개 선택 - "선택됨"상태가 작동하지 않음을 나타냅니다.

모든 것이 작동합니다 (db 삽입은 정상이며 출력 결과는 정상입니다). 그러나 새로 고침 후 표시된 값을 가져올 수 없습니다.

I는 WP 코어에서 selected() 함수를 사용하는 것을 시도하고있다 ..

코드 (이것은 위젯 클래스 내에 있고 비교적 간단한 위젯 제공)

<!-- List Custom Fields Hide Underscore (hide=no) --> 
<p> 
    <?php $keys_no = $this->k99_cfsw_get_all_cf_array('no');?> 
    <?php if ($keys_no) { ?> 

    <label for="<?php echo $this->get_field_id('cfl2'); ?>"><?php _e('Select your custom field','k99_gelosa_domain'); ?></label> 

    <select multiple="multiple" class="chzn-select" style="width:150px;height:29px;" size="5" id="<?php echo $this->get_field_id('cfl2'); ?>" name="<?php echo $this->get_field_name('cfl2'); ?>[]" value="<?php $instance['cfl2'] ?>"> 
    <option value="<?php isset($instance['cfl2']) ? _e($instance['cfl2']) : _e('#NONE#'); ?>"><?php isset($instance['cfl2']) ? _e('multiple') /*_e($instance['cfl2'])*/ : _e('#NONE#'); ?></option> 

    <!--<option value="#NONE#"><?php //echo $cfl; ?></option>--> 

    <!--<option value="------">-------</option>--> 
    <?php 
     foreach ($keys_no as $key) { 
      echo "\n<option value='" .esc_attr($key) . "'". selected($instance['cfl2'],esc_attr($key) ,FALSE).">". esc_html($key) . "</option>"; 
     } 
    ?> 
    </select> 
    <?php 

} ?> 
</p> 

을 측면으로 메모 및 보너스 질문 - 나는 또한 chosen JS을 사용하고 있습니다 - 또한 괜찮습니다. (선택된 항목을 표시하지 않습니다 ..)하지만 위젯이 닫히면 시작되지 않는 작은 버그가 있습니다 - 열린 상태로 저장 한 후에 만 ​​...

답변

9

절대로 찾지 마세요, 답변 :

selected(true, in_array($key, $instance['cfl2']), false)