[Résolu] programmer bouton

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.

Re
comment programmer un autre bouton que j'ai ajouté c a d en cliquant sur ce bouton m'envoi vers une page précise ???

Version de Drupal : 

Bonjour

je voudrais que mon bouton soit indépendant des contrôles de validation traités dans ma fonction submit . J 'ai spécifié la page dans drupal_goto mais quand je clique il m affiche les messages d'erreur que j'ai établi lors de la validation moi je voudrais que quand je clique m envoi directement vers ma page spécifié sana faire de contrôle

voila ou j'ai écrit drupal goto

function test_form_block_submit(&$form, &$form_state) {

drupal_set_message($form_state['values']['radical']);
drupal_set_message($form_state['values']['num_credit']);

$form_state['redirect'] = 'node/7';

et mercii
}
function mymodule_my_form_action_one($form, &$form_state) {
drupal_goto('node/7');
}

<?php
function test_form_block($form, &$form_state){

 
$form = array();
 
$form['radical'] = array(
   
'#type' => 'textfield',
 
'#size' => '30',
   
'#maxlength' => "7",
   
   
'#title' => t('Radical'),
 
'#description' => t('veuillez saisir le Radical'),
   
'#required' => TRUE,
  );
 

$form['type_credit'] = array(
'#title'=> t('Type de credit'),
'#type' => 'select',
'#options' => array(
        
0 => t('Investissement'),
        
1 => t('Remboursable par echeance fixe'),
     
2 => t('Credit a court terme'),
                 ),
      
'#default_value' => $category['selected'],
    
'#description' => t('veuillez Choisir un type de credit'),
 
);

 
$form['submit'] = array(
   
'#type' => 'submit'
    '#value'
=> t('Charger'), 
  );
  
$form['liste'] = array(
   
'#type' => 'submit',
   
'#value' => 'Liste des clients',
   
'#submit' => array('mymodule_my_form_action_one'),
  );
 return
$form;
  }
function
test_form_block_validate(&$form, &$form_state) {
 
  if (!
is_numeric($form_state['values']['radical'])) {
   return
form_set_error('radical', 'Le radical doit etre numerique');
   }

if(
strlen($form_state['values']['radical'])<7)
{
   return
form_set_error('radical', 'veuillez saisir 7 caracteres');
   }

function
test_form_block_submit(&$form, &$form_state) {

drupal_set_message($form_state['values']['radical']);

$form_state['redirect'] = 'node/7';

function
mymodule_my_form_action_one($form, &$form_state) {
 
drupal_goto('node/7');
}
}
?>

Je crois que j'ai trouvé. J'ai séparé très clairement le process de validation et soumission des deux boutons. A tester :

<?php
function test_form_block($form, &$form_state){
 
$form = array();
 
$form['radical'] = array(
   
'#type' => 'textfield',
   
'#size' => '30',
   
'#maxlength' => "7",
   
'#title' => t('Radical'),
   
'#description' => t('veuillez saisir le Radical'),
   
'#required' => TRUE,
  );

  $form['type_credit'] = array(
   
'#title'=> t('Type de credit'),
   
'#type' => 'select',
   
'#options' => array(
     
0 => t('Investissement'),
     
1 => t('Remboursable par echeance fixe'),
     
2 => t('Credit a court terme'),
     ),
   
'#description' => t('veuillez Choisir un type de credit'),
  );

  $form['submit'] = array(
   
'#type' => 'submit',
   
'#value' => t('Charger'),
   
'#submit' => array('submit1_form_submit'),
  );

  $form['liste'] = array(
   
'#type' => 'submit',
   
'#value' => 'Liste des clients',
   
'#submit' => array('submit2_form_submit'),
  );
  return
$form;
}

function submit1_form_validate(&$form, &$form_state) {
  if (!
is_numeric($form_state['values']['radical'])) {
    return
form_set_error('radical', 'Le radical doit etre numerique');
  }

  if(strlen($form_state['values']['radical'])<7) {
     return
form_set_error('radical', 'veuillez saisir 7 caracteres');
  }
}

function submit1_form_submit(&$form, &$form_state) {
 
drupal_set_message($form_state['values']['radical']);
 
$form_state['redirect'] = 'node/7';
}

function submit2_form_submit($form, &$form_state) {
 
drupal_goto('node/7');
}

function test_form_alter(&$form, &$form_state, $form_id) {
 
dpm($form_id); // télécharger et activer le module devel et être loggué en tant qu"admin pour voir le bon form_id et changer le something ci-dessous
 
if($form_id == 'something') {
   
$form['#validate'][] = 'submit1_form_validate';
  }
}
?>