3

コンテンツ タイプ「ジョブ」のブロックに表示される Web フォームがあります。ノードから 2 つのフィールドを Web フォーム送信に取得しようとしています。私はこのカスタムモジュールを持っています:

function webform_nodevalues_form_alter(&$form, $form_state, $form_id) {  
  // 1. Webform ID  
  if ($form_id == 'webform_client_form_237') {  
    if ($node = menu_get_object()) {  
      // 2. Webform field for the node title  
      $form['submitted']['title']['#value'] = $node->title;  
      // 3. Webform field for a CCK field  
      $form['submitted']['email']['#value'] = $node->field_email[0]['value'];  
    }  }
}  

ただし、次のエラーが発生します。

Notice: 未定義のオフセット: webform_nodevalues_form_alter() の 0 (/drup/sites/all/modules/webform_nodevalues/webform_nodevalues.module の 35 行目)。

Webフォームの送信でメールフィールドを取得する方法について何か考えはありますか?

4

2 に答える 2

1

このエラーは、次の行が原因だと思います。

// ERROR HERE...
$form['submitted']['email']['#value'] = $node->field_email[0]['value'];

これは次のようになります。

$form['submitted']['email']['#value'] = $node->field_email['und'][0]['value'];

また:

$form['submitted']['email']['#value'] = $node->field_email[LANGUAGE_NONE][0]['value'];

これが役に立てば幸いです...ムハンマド。

于 2012-04-26T09:41:20.720 に答える
1

もう少しいじくり回して、私はそれを理解しました(正しい方向に向けてくれたMuhammad Redaに感謝します).

$form['submitted']['email']['#value'] = $node->field_email['und'][0]['email'];

私はDevelを初めて使用しますが、負荷を見て、各レベルを括弧で囲むだけでうまくいくように見えました.

于 2012-04-26T19:14:38.250 に答える