Submitted by leila_el on
J’ai en effet un problème et j’aimerai connaitre quelques idées pour réussir à le résoudre...
J'essaie de créer une page sur laquelle je mets une vue avec des champs exposés, mais le problème c'est que je veux avoir ces champs en checkbox. Pour les checkboxs j'ai réussi à les mettre en place mais le formulaire ne marche plus parce que les champs sont envoyés par URL sous format:
nom_de_mon_filtre[valeur_de_ce_filtre]=valeur_de_ce_filtre
alors que normalement, avec les filtres exposés sous forme de listes déroulantes (le type de champs select) j'ai le filtre envoyé par URL sous format: nom_de_mon_filtre=valeur_de_ce_filtre
J'ai même essayé de créer un autre formulaire avec les même noms des filtres, en utilisant le type checkboxes, mais j'ai toujours le même problème :(
J'ai essayé de changé la façon dont les checkboxes sont envoyés mais en vain....:s, j'ai cherché des solutions sur le net mais négatif...
Toute proposition sera la bienvenue surtout que je dois livrer la première partie du site d'içi la fin du mois et jusque là je n'ai pu rien faire à cause de ce problème...
peux-tu nous montrer ton
Permalien Soumis par selinav le 22 Mars, 2011 - 17:44
peux-tu nous montrer ton code?
Bonjour Selinav, Merci de
Permalien Soumis par leila_el le 22 Mars, 2011 - 18:50
Bonjour Selinav,
Merci de m'avoir répondu si vite...
En bas le code de mon fichier .module
<?php
function costum_block($op = 'list', $delta = 0, $edit = array()) {
switch($op) {
case 'list' :
// Enumération des blocs disponibles
{
drupal_set_message('ok');
$view = views_get_view('recherche_offres');
$blocs = array();
$blocs['filtres_recherche'] = array('info' => t('info: Bloc de filtres de recherche'),
'cache' => BLOCK_CACHE_GLOBAL );
return $blocs;
} // fin du cas 'list'
case 'view' :
// Génération du contenu à afficher pour le block
{
$bloc = array();
if ($delta == 'filtres_recherche') {
// Construction du contenu
//$contenu = exposed_filters();
$contenu = drupal_get_form('callex_formulaire');
// Ajout du message
//$contenu .= "" . variable_get('hello_world_message', "pas de message défini");
// Construction du block
$bloc['subject'] = t('Subject: Bloc de filtres de recherche');
$bloc['content'] = $contenu;
}
return $bloc;
} // fin du cas 'view'
} // fin switch
} // fin hook
function callex_formulaire($form_state){
$form = array();
$form['#action'] = 'ma_recherche';
$form['#method'] = 'GET';
$form['#attributes'] = array('id' => 'views-exposed-form-recherche-offres-page-1');
//Les checkboxes de Métiers
$form['metiers'] = array(
'#type' => 'checkboxe',
'#title' => t('Métiers'),
'#prefix' => '<div class="form-item" id="edit-ville-wrapper">',
'#suffix' => '</div>',
'#options' => array(
'achats_transports_logistique' => t('Achats, transports, logistique'),
'commercial_vente' => t('Commercial, vente'),
'gestion_comptabilite_finance' => t('Gestion, comptabilité, finance'),
'informatique_nouvelles_technologies' => t('Informatique, nouvelles, technologies'),
'management_direction_generale' => t('management, direction, générale'),
'marketing_communication' => t('Marketing, communication'),
'metiers_sante_social' => t('Métiers, santé, social'),
'metiers_services' => t('Métiers, services'),
'metiers_btp' => t('Métiers BTP'),
'production_maintenance_qualite' => t('Production, maintenance, qualité'),
'rh_juridique_formation' => t('RH, juridique, formation'),
'rd_gestion_projets' => t('R&amp;D, gestion de projets'),
'secretariat_assistanat' => t('Secrétariat, assistanat'),
'tourisme_hotellerie_restauration' => t('Tourisme, hôtellerie, restauration'),
)
);
//Les checkboxes de Sécteurs d'activité
$form['secteurs'] = array(
'#type' => 'checkboxes',
'#title' => t('Sécteurs d\'activité'),
'#options' => array(
'activites_associatives' => t('Activités associatives'),
'commercial_vente' => t('Commercial, vente'),
'gestion_comptabilite_finance' => t('Gestion, comptabilité, finance'),
'informatique_nouvelles_technologies' => t('Informatique, nouvelles, technologies'),
'management_direction_generale' => t('management, direction, générale'),
'marketing_communication' => t('Marketing, communication'),
'metiers_sante_social' => t('Métiers, santé, social'),
'metiers_services' => t('Métiers, services'),
'metiers_btp' => t('Métiers BTP'),
'production_maintenance_qualite' => t('Production, maintenance, qualité'),
'rh_juridique_formation' => t('RH, juridique, formation'),
'rd_gestion_projets' => t('R&amp;D, gestion de projets'),
'secretariat_assistanat' => t('Secrétariat, assistanat'),
'tourisme_hotellerie_restauration' => t('Tourisme, hôtellerie, restauration'),
)
);
//Les checkboxes de Ville
$form['ville'] = array(
'#type' => 'checkboxes',
'#title' => t('Villes'),
'#options' => array(
'agadir' => t('Agadir'),
'casablanca' => t('Casablanca'),
'fes' => t('Fès'),
'laayoune' => t('Laâyoune'),
'marrakech' => t('Marrakech'),
'meknes' => t('Meknès'),
'oujda' => t('Oujda'),
'rabat' => t('Rabat'),
'tanger' => t('Tanger'),
)
);
$form['envoyer'] = array(
'#type' => 'submit',
'#value' => 'Envoyer'
);
$form['#after_build'][] = 'callex_formulaire_after_build';
return $form;
}
function callex_formulaire_after_build($form, &$form_state) {
unset($form['form_build_id'], $form['form_token'], $form['form_id'],$form['submit']);
//drupal_set_message('
'. print_r($form, 1) .'
');
return $form;
}
ce module pourrait-il t’aider
Permalien Soumis par selinav le 28 Mars, 2011 - 13:06
ce module pourrait-il t'aider http://drupal.org/project/better_exposed_filters