Impossible de récupérer les données postées par le formulaire

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous

Après avoir fait le tour du web à chercher la solution à mom problème, j'ai finalement décider de poster ce sujet sur le forum.

J'ai créé un formulaire qui s'affiche bien dans un bloc.Mon désire est qu' après validation les données soient postées vers un noeud nommé "seachinm". Sur ce noeud je veux récupérer les données du formulaire afin de les utiliser pour sélectionner des données dans ma base de données. voici les codes:

/*
* Implementation of hook_menu()
*/
function searchimm_menu() {
$items['searchimm'] = array(
'title' => 'Formulaire de recherche des immeubles ',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
'page callback' => 'searchimm_content',
);

return $items;
}

le code du formulaire:

function searchimm_formulaire()
{

// execution de requete affichant les différents type d'immeble

$query = 'SELECT distinct field_type_immeuble_value FROM field_data_field_type_immeuble order BY 1';
$result = db_query($query)->fetchAllAssoc('field_type_immeuble_value');
foreach($result as $row) {
$tab[$row->field_type_immeuble_value]=$row->field_type_immeuble_value;
}

// constitution du formulaire

// la liste des types immeuble

$form['type_imm'] = array(
'#type' => 'select',
'#title' => t('Type immeuble'),
'#options' => $tab,
'#default_value' => '',
'#description' => t('Type immeuble'),
'#required' => true,
'#weight' => 0,
);

// la liste des types opération : à vendre ou louer

$query = 'SELECT distinct field_type_op_ration_value FROM field_data_field_type_op_ration order BY 1';
$result = db_query($query)->fetchAllAssoc('field_type_op_ration_value');
foreach($result as $row) {
$tabop[$row->field_type_op_ration_value]=$row->field_type_op_ration_value;
}

$form['type_op'] = array(
'#type' => 'select',
'#title' => t('Immeuble'),
'#options' => $tabop,
'#default_value' => '',
'#description' => t('Immeuble à'),
'#required' => false,
'#weight' => 1,
);

// la liste des endroits des immeubles

$query = 'SELECT distinct field_situation_value FROM field_data_field_situation order BY 1';
$result = db_query($query)->fetchAllAssoc('field_situation_value');
foreach($result as $row) {
$tabsit[$row->field_situation_value]=$row->field_situation_value;
}

$form['situation'] = array(
'#type' => 'select',
'#title' => t('Situation'),
'#options' => $tabsit,
'#default_value' => '',
'#description' => t('Situation des immeubles'),
'#required' => false,
'#weight' => 2,
);

// la zone des prix
$form['prix'] = array(
'#type' => 'textfield',
'#title' => t('Prix'),
'#required' => false,
'#weight' => 3,
);

// bouton valider

$form['submit'] = array(
'#type' => 'submit',
'#value' => t('OK'),
'#weight' => 12,
);

return $form;

}

Code de soumission du formulaire

function searchimm_formulaire_submit($form, &$form_state) {

$data=array(
'typeop' => $form_state['values']['type_op'],
'situationim' => $form_state['values']['situation'],
'prixim' => $form_state['values']['prix'],
);
$form_state['storage']['para']=$data;

}

Code traitant les données du formulaire et affichant le résultat

function searchimm_content() {

if (isset($form_state['storage']['para'])){

$requete = "select * from node where type='immeuble'";
$rep = db_query($requete)->fetchAllAssoc('title');

// ICI, tu boucles sur tes données et tu génères ton tableau :
$affichage = '';

$affichage .= "<TABLE BORDER='2'
<CAPTION> Resultat de la recherche </CAPTION>
<TR>
<TH> Nom </TH>
<TH> Prenom </TH>
<TH> Institution </TH>
<TH> Fonction </TH>
</TR>";

foreach($rep as $tuple) {
$affichage .= "
<TR>
<TD>".$tuple->title."</TD>
<TD>".$tuple->title."</TD>
<TD>".$tuple->title."</TD>
<TD>".$tuple->title."</TD>
</TR>";
}

$affichage .= "";

$output= $affichage;
}

return $output;

}

La page s'ouvre bien mais je n'obtiens rien au niveau du résultat. Cela veut dire que ma variable $form_state['storage']['para'] est inexistante. Quand je fais un dpm($form_state['storage']['para']) au niveau de la fonction searchimm_formulaire_submit, je vois bien les données du formulaire mais si je fais la même chose qu niveau de la fonction searchimm_content(), elle est vide.

Quelqu'un pourrat-il m'aider?
Merci d'avance

Forum : 
Version de Drupal :