0
私はフォームを構築するモジュールを持っています。私はそのモジュールで作成されたメニュー項目を介してフォームにヒットすることができます。私がajax経由でフォームを読み込もうとすると、フォームの代わりにページ全体(ヘッダー、フォーム、およびフッター)が得られます。ここでは、メニュー項目があります:jQueryダイアログにajax経由でDrupalフォームを読み込むにはどうしたらいいですか?
$items['sendmessage'] = array(
'title' => 'Send Message',
'description' => 'Send a message',
'page callback' => 'drupal_get_form',
'page arguments' => array('rmessages_message_form', 1),
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
ここではjavascriptのだ:
$('.send_message').click(function(){
$('.send-message-dialog').dialog('open');
$('.send-message-dialog .dialog-content').load('/sendmessage/7');
}
);
私はブラウザを介してURLを読み込む場合は、フォームの負荷が。 drupalにフォームをレンダリングさせ、ページ全体をロードしようとするのではなく、HTMLを返すようにする方法がいくつかあります。 drupal_render(によってレンダリングされるアイテムの配列を取得するためにdrupal_build_formを使用した)
$items['sendmessage'] = array(
'page callback' => 'rmessage_send_message_form',
'page arguments' => array('rmessages_message_form', 1),
'access callback' => TRUE
);
)
function rmessage_send_message_form($form_id, $nid) {
$form_state = array();
echo drupal_render(drupal_build_form('rmessages_message_form', $form_state, $nid));
}
;
これは...お奨めdrupal_render機能を覚えて動作しているようです