passer des argument d'une page formulaire à une page résultat

Catégories:

Une question pour laquelle je ne trouve pas de solution simple, même si elle me parrait courante

objectif : filtrer des ‘clubs’ par ‘pays’

à l’aide d’un module, je crée une page qui propose un formulaire comprenant un select avec la liste des pays possibles.
J’aimerais que (éventuellement sur le ‘onchange’) j’aboutisse à une page me donnant la liste des clubs filtrés sur ce pays.

  $items['clubs/clubs-finder'] = array(
        'title' => 'Clubs Finder',
      'page callback' => 'clubs_finder_page',
     'access arguments' => array('access content'),
      'type' => MENU_NORMAL_ITEM,
       'weight' => 5,
    );

la création de la page

/**
* Generate the clubs_finder page
*/
function clubs_finder_page() {

    $page_content = '<p>'.t('Find Dog Clubs all around Europa').'.</p>';
$page_content .= drupal_get_form('clubs_finder_form');
   return($page_content);
}

et la fonction de création du formulaire

/**
* Generate the clubs_finder form
*/
function clubs_finder_form() {
$clubs_country_options = array(
                    '' => t('Select the country'),
                  'be' => t('Belgium'),
                   'ch' => t('Switzerland'),
                   'fr' => t('France'),
                    'lu' => t('Luxembourg'),
                  );
  $form['clubs_country'] = array(
      '#title' => t('Choose the country'),
        '#type' => 'select',
        '#options' => $clubs_country_options,
         '#description' => 'Select the name of the country where searching the Club',
        '#required' => TRUE,
  );
$form['submit'] = array(
     '#type' => 'submit',
        '#value' => t('submit'),
    );
return $form;
}

Je pense que la suite se passe au niveau de ‘page argument’ mais je n’arrive pas à trouver l’exemple qui me donne une piste.

Merci pour votre aide

#

je te recommande de passer par une vue :

  • tu créés une vue portant sur tes club
  • tu ajoutes un filtre sur le pays
  • tu coches la case «exposer le filtre» cela va automatiquement te créer un champ de formulaire dans la page de liste de tes club qui te permettra de choisir le pays sur lequel tu veux filtrer
  • si tu veux un onChange libre a toi de masquer le bouton de validation et de mettre un script onChange sur le champ en question

Richard lascols
www.ideia.fr

#

c’est ce que j’avais commencé au début,
mais la mise en forme du résultat est très particulière et ne semble pas facile/possible sous views (double affichage des infos, et un manque de souplesse avec la gestion des menus).

Syndiquer le contenu