Condition lors du submit sur un champ numérique

Eléphanteau du PHP | 30 Messages

22 avr. 2013, 12:52

Bonjour

J'aimerais faire 2 conditions lors du submit de mon formulaire.
La 1ère fonctionne très bien (si le département du champ ['element_numeric'][4] est inclus dans la liste (93, 95, 60, 62 , 80 , 59 , 02 ,27 , 28 , 76 , 14 , 50) envoi vers [email protected] sinon [email protected]
C'est la deuxième qui vas pas sur le champ ['element_numeric'][7]
<?php if (isset($_POST['submit'])) 
{
    // email par défaut
    $email   = '[email protected]';
    // départements spéciaux
    $tab_dpt = array(93, 95, 60, 62 , 80 , 59 , 02 ,27 , 28 , 76 ,  14 , 50); 
    $cp      = (isset($_POST['element_numeric'][4])) ? (int)$_POST['element_numeric'][4] : 0;
 
    if ( ! empty($cp))
    {
        $dpt = (int)substr($cp, 0, 2);
        if (in_array($dpt, $tab_dpt, true))
        {
            $email = '[email protected]';// code postal dans la liste (Bruno&Marc)
        }
    }
    elseif (isset($_POST['element_numeric'][7])) 
    {
        $n = (int)$_POST['element_numeric'][7];
        if (($n >= 0) && ($n < 50))
        {
            $email = '[email protected]';// nbr de véhicules inférieur à 50 (Bruno&Marc)  
        }
    }
 
  $formName="Test";// en sortant du else le message et valable pour les 2 conditions
  $emailSubject="Informations transmises par le formulaire";
  ?>
- le département figure dans la liste envoi vers email1 c'est bon
- le nombre de véhicules est supérieur à 50 envoi vers email2 c'est bon
- le nombre de véhicules est inférieur à 50 envoi vers email1 c'est pas bon :non:

Merci pour le coup de main
A bientôt

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 avr. 2013, 21:18

salut,

tu test si $n est < 50 mais pas l'inverse (pas de else) donc c’est plutôt dans ce sens la le problème ?

tu peux supprimer la condition sur $n > 0 ce qui t'intéresse c'est inférieur à 50, tu n'utilise pas la valeur (du moins dans ce code).


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 30 Messages

23 avr. 2013, 14:16

Bonjour

bon ca fonctionne!
if (isset($_POST['submit'])) { // le formulaire a été posté
$tab_cp=array(93, 95, 60, 62 , 80 , 59 , 02 ,27 , 28 , 76 ,  14 , 50); // Tableaux des codes postaux
$select_email='0';
 $cp=$_POST['element_numeric'][4] ; // Le champs où l'utilisateur entre son code postal  
  $int_cp = intval(substr($cp,0,2)); /*Troncature du code postal pour ne garder que les 2 premiers caracteres et transforme en entier*/
 
if(!empty($cp)) 
{
  if (in_array($int_cp,$tab_cp)){
  $select_email='1'; // Si code postal est dans la liste on choisi cet email
    	}
   }
 
if($select_email == '1'){
  $email="[email protected]";// code postal dans la liste
 
}
    elseif (isset($_POST['element_numeric'][7])) 
    {
        $n = (int)$_POST['element_numeric'][7];
        if (($n < 50))
        {
            $email = '[email protected]';// nbr de véhicules inférieur à 50 (Bruno&Marc)  
        }
		elseif (isset($_POST['element_numeric'][7])) 
    {
        $n = (int)$_POST['element_numeric'][7];
        if (($n > 50))
        {
            $email = '[email protected]';// nbr de véhicules supérieur à 50 (fleet)  
        }
        else
        $email="[email protected]";// email par défaut
}
	}

  $formName="Test";// en sortant du else le message et valable pour les 2 conditions
  $emailSubject="Informations transmises par le formulaire";
  ?>
Maintenant peut-etre qu'il y a plus simple :oops:
Merci pour la correction.

A bientôt