2010-12-09 18 views
1

Je souhaite appeler un formulaire créé dans le fichier .module. Cela signifie que dans une fonction AJAX située dans une page HTML de drupal, je voudrais ajouter un formulaire qui est défini dans le fichier du module avec un DIV présente dans mon fichier HTML.Drupal: appelez drupal_get_form à partir de AJAX

Avez-vous une solution pour avoir seulement le code HTML généré par drupal pour un formulaire? Mais l'appel à Drupal serait dans une fonction AJAX.

En fait, je peux créer un chemin '? MyProject/form' où le formulaire est généré. Cependant, je ne peux pas ajouter le contenu complet de la page html (en-tête, pied de page). Je veux seulement ajouter le code HTML du formulaire.

J'espère que je suis compréhensible

Merci beaucoup

Bat

Répondre

2

Peut-être que vous avez un 'rappel de page' avec une fonction comme ceci dans votre hook_menu:

$items['myProject/form/%'] = array(
    'title' => t('Get a form'), 
    'description' => 'Get form', 
    'access callback' => 'user_access', 
    'page callback' => '_get_form', 
    'page arguments' => array(2), 
    'access arguments' => array('access content'), 
    'type' => MENU_CALLBACK, 
); 

Et peut-être que vous avez cette fonction définie:

function _get_form($form_id){ 
    return "Hello World with " . $form_id; //returns the whole page with this text 
} 

Si vous changez return pour print, Drupal ne renvoie ce texte, comme ceci:

function _get_form($form_id){ 
    print "Hello World with " . $form_id; //returns only this text 
} 

J'espère que cela aide