ユーザーがリンクをクリックすると、Ajax対応の送信ボタンがあるダイアログで新しいフォームをロードしています。私のダイアログでは、Drupalヘッダーとフッターなどの全体を表示したくありません。私が表示しているのは、その新しいフォームの内容です。したがって、私のフォームはjsonを介して次のように出力されます:Ajaxボタンが新しくロードされたフォームのコンテンツで機能していない - Drupal 7
$json['html'] = drupal_render(drupal_get_form('my_form'));
drupal_json_output($json);
私が望むように動作し、フォームの内容だけが表示されます。しかし、これが起こると、ajax対応のフォームのsubmitボタンはajaxを介して送信されません。代わりに、通常のボタンのように提出し、別のページの同じフォームに私を連れて行く。
私はフォームが出力され、このようなヘッダーとフッター、と、正常に表示されている場合:
$output = drupal_get_form('my_form');
return $output;
すべてがうまく動作し、私のsubmitボタンが「Ajax対応」です。
私は、新しいコンテンツを読み込んでいて、これらの新しいフォームコンテンツに動作が添付されていない可能性があります。だから私のjsファイルでは、私もこれをしました:
$('a.my_link', context).click(function() {
//processing done here
$('#my_modal_dialog').html(jsondata['html']);
}, "json");
Drupal.attachBehaviors($('#my_modal_dialog'));
それほど問題はありませんでした。私は、フォームが正常に出力された場合、ボタンがajaxボタンとして機能し、フォームコンテンツのみが表示されると、ajaxが機能しないのはなぜかと思います。
誰かが願っています...事前に感謝します。
リンクが悪くなったときに、ここで解決策を再現できますか? –