0

Drupal 7 でフォームの変更を使用して、ノード フォームに別のボタンを追加しています。

function mymod_form_alter(&$form, &$form_state, $form_id) {
  $form[$key]['button'] = array(
    '#type' => 'submit',
    '#value' => t('Seach),
    '#limit_validation_errors' => array(),
    '#submit' => array('mymod_process'),
  );
 }

...
...

function mymod_process(&$form, &$form_state) {
  $form_state['rebuild'] = TRUE;    
  // Do my processing here...
}

$form_state['rebuild'] = TRUE;ボタンが押されたときにフォームの値を保持するように追加しました。これが機能するボタンを初めて押すと、カスタムボタンを2回押すと、次のエラーが表示されます。

PHP Fatal error:  Cannot create references to/from string offsets nor overloaded objects in /www/includes/common.inc on line 6430

次に、ページをリロードすると、drupal_set_message() は次のように報告します。

Notice: Array to string conversion in drupal_attributes() (line 2298 of /www/includes/common.inc).

を取り出す$form_state['rebuild'] = TRUE;と、エラーはなくなります。ただし、フォームの値は保持されません。このエラーを発生させずにフォームの値を保持する方法はありますか?

4

1 に答える 1

0

私が入れた場所'#limit_validation_errors' => array(),とフォームの値が保持されていない場所で同様の問題が発生しました。その行を削除すると、フォームの値は実際に保持されます。

ここを参照してください:

これは通常、「戻る」ボタンの場合にマルチステップ フォームで使用さます

于 2013-02-28T14:27:57.613 に答える