2011-02-10 27 views
7

Drupal form api kullanıyorum ve onay kutularını kullanarak. Onunla varsayılan kontrol değerlerinde sorun yaşıyorum. Kod parçacığı Aşağıdaki ...drupal form api onay kutuları

$result = db_query("SELECT nid, filepath FROM {content_type_brand}, {files} WHERE content_type_brand.field_brand_image_fid 
= files.fid"); 
     $items = array(); 
     while ($r = db_fetch_array($result)) { 
       array_push($items, $r); 
     } 
     $options = array(); 
     foreach($items as $i) { 
      $imagePath = base_path().$i['filepath']; 
      $options[$i['nid']] = '<img src="'.$imagePath.'"></img>'; 
     } 
     $form['favorite_brands'] = array (
      '#type' => 'fieldset', 
      '#title' => t('Favorite Brands'), 
      //'#weight' => 5, 
      '#collapsible' => TRUE, 
      '#collapsed' => FALSE, 
     ); 
     $form['favorite_brands']['brands_options'] 
= array(
      '#type' => 'checkboxes', 
      '#options' => $options, 
      '#default_value' => $options_checked,// $options_checked is an array similar to $options but having elements which need to be checked by default... 
      '#multicolumn' => array('width' => 3) 
     ); 

ancak değerler varsayılan olarak işaretli olmadığından ... Herkes ben eksik ben yardımcı olabilir ??

Teşekkür

options_checked dizi sizin $ seçenekler dizisinin aynı biçimde olmamalıdır
+0

$ options_checked nerede tanımlanmış? Sorun, sağlanan snippet'in herhangi bir şekilde $ options_checked tanımlamaması ve bu nedenle onay kutularının varsayılan olarak işaretlenmemesidir. – zerolab

cevap

7

Kişisel $. $ Options diziniz nid => img etiket çiftlerini içerir. $ Options_checked diziniz, varsayılan olarak kontrol edilmesi gereken seçeneklerin nid değerlerini içermelidir:

$options_checked = array(8,17);