web-dev-qa-db-ja.com

フォームにHTMLを追加する方法は?

カスタムモジュールを作成しています。 HTMLを追加したいフォームがありますが、これを行うための最良の方法がわかりません。

この例では、テキストボックス、ドロップダウンリスト、およびテキスト領域を持つページがあります。ドロップダウンリストとテキスト領域の間にdivを追加します。しかし、未加工のHTMLをWebフォームに追加する方法がわかりません。

ここに私が持っているものがあります:

function myModule_add_form($form_state){
  try{
    $form = array();
    $form['myModule_title'] = array(
      '#title' => 'Title',
      '#type' => 'textfield',
      '#size' => '30',
      '#weight'=>1,
    );

    $form['myModule_type_list']=array(
      '#type'=>'select',
      '#title' => 'Type List',
      '#options' => $someArray,
      '#multiple' => false,
      '#attributes'=>array('size'=>1),
      '#weight'=>2,
    );

    $form['myModule_description'] = array(
      '#title' => 'Description',
      '#type' => 'textarea',
      '#size' => '255',
      '#weight'=>3,
    );

    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => 'Submit',
      '#weight'=>4,
    );

    return $form;
  } catch(Exception $e){
      $errrmsg = "Error with creating form: " .$e->getMessage();
      throw New Exception($errrmsg);
  }
}

ありがとうジェイソン

3
jason

フォームAPI に従って、ここに#type => markupが必要です。

$html = '<strong>My HTML</strong>';

$form['mymarkup'] = array(
  '#type' => 'markup'
  '#value' => $html,
);
1
Sumit Madan

これはデフォルトのタイプなので、#type = 'markup'としてフォーム要素を宣言する必要はありません。

$html = '<strong>My HTML</strong>';

$form['mymarkup'] = array(
  '#markup' => $html,
);

参照: https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7.x

3
Ivan Azarkevich

代わりにこれを試してください:

$html = '<strong>My HTML</strong>';

$form['mymarkup'] = array(
  '#type' => 'markup',
  '#markup' => $html,
);

参照: https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7.x

2
phillihp