5

私はこのラジオボタンのグループを持っており、個々のボタンのそれぞれがスタイル属性を介して設定された独自の位置を持っています。drupal form apiを使用して同じものをアーカイブするにはどうすればよいですか?グループ内の個別のコントロールとしてではなく、全体としてスタイルを設定する方法を見つけました。これが私のhtmlコードがどのように見えるかです-

<input type="radio" name="base_location" checked="checked" value="0" style="margin-left:70px;float:left;"/><span style="float:left;">District</span>
  <input type="radio" name="base_location" value="1" style="margin-left:50px;float:left;"/><span style="float:left;">MRT</span>
  <input type="radio" name="base_location" value="2" style="margin-left:60px;float:left;"/><span style="float:left;">Address</span>

そして、これは私が立ち往生しているdrupalコードです-

$form['base_location'] = array(
   '#type' => 'radios',
   '#title' => t('base location'),
   '#default_value' => variable_get('search_type', 0),
   '#options' => array(
'0'=>t('District'),
'1'=>t('MRT'),
'2'=>t('Address')),
   '#description' => t('base location'),

#type=>ラジオの存在を知っています。ただし、この点ですべてのラジオボタンをグループ化する方法がわかりません。それらすべてに同じ配列キーを使用すると、それらは互いに衝突します。そうしないと、彼らは同じグループの一部として見られません。よろしくお願いします。

4

2 に答える 2

3

Drupal 6.x Form APIと#type=>radioshttp://api.drupal.org/api/function/theme_radios/6)を使用している場合、各無線要素には、適切なCSSを適用するために使用できる一意のIDがあります。

あなたが提供した例

$form['base_location'] = array(
  '#type' => 'radios',
  '#title' => t('base location'),
  '#default_value' => variable_get('search_type', 0),
  '#options' => array(
  '0'=>t('District'),
  '1'=>t('MRT'),
  '2'=>t('Address')),
  '#description' => t('base location'),
);

次のようにマークアップを出力する必要があります。

<div id="base-location-0-wrapper" class="form-item">
  <label for="base-location-0" class="option"><input type="radio" class="form-radio" value="0" name="base_location" id="base-location-0"> District</label>
</div>
<div id="base-location-1-wrapper" class="form-item">
  <label for="base-location-1" class="option"><input type="radio" class="form-radio" value="1" name="base_location" id="base-location-1"> MRT</label>
</div>
<div id="base-location-2-wrapper" class="form-item">
  <label for="base-location-2" class="option"><input type="radio" class="form-radio" value="2" name="base_location" id="base-location-2"> Address</label>
</div>

次のCSSを適用すると、設定されます。

  #base-location-0-wrapper,
  #base-location-1-wrapper,
  #base-location-2-wrapper {
    display:inline;
    margin-left:50px;
  }
于 2010-05-18T14:46:58.463 に答える
1

答えは、すでに持っているhtmlでCSSを使用することです。ラジオボタンの表示を10pxの余白のある「インライン」に変更したいようです。これは可能です。(そして、もしあなたがラジオをフィールドセット内の別々の要素に分割したならば、それらはもはや互いに相互作用しません。)

于 2010-05-18T03:41:57.573 に答える