0

書かれたphpコードを介して値にアクセスする必要があるフォームがあります。しかし、 $_POST は drupal では機能しません。

PHP ですべての送信値にアクセスする方法を知る必要があります。だれか助けていただけませんか?...

4

1 に答える 1

1

これは Drupal でレンダリングされ、Drupal から読み取られるフォームですか? 次に、 FAPIを使用すると簡単です。送信コールバックをフォームに追加するだけです。

それが独自のモジュールの形式である場合は_submitmymodule_form_function_submit. 他の人のフォームの場合は、次のhook_form_alterように送信コールバックを実装して追加する必要があります。

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'the_form') {
    $form['#submit'][] = 'mymodule_the_form_submit';
  }
}

次に、コールバック関数を実装するだけです。

function mymodule_the_form_submit($form, $form_state) {
  die('My name is ' . $form_state['values']['name']);
}

Drupal のビルトイン フォーム API を使用すると、ビジネス ロジックから検証を分離できるという利点が追加されます。これは、送信コールバックを追加したのと同じように、検証コールバックも追加できることを意味します。検証コールバックが呼び出された場合form_set_error()、送信コールバックは呼び出されないため、適切なデータがあることに安全に依存できます。

于 2012-06-29T07:46:26.663 に答える