Condition avec bouton radio [PHP]

Résolu/Fermé
christophe.therrien Messages postés 102 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 9 juin 2010 - 5 juin 2009 à 21:12
christophe.therrien Messages postés 102 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 9 juin 2010 - 11 juin 2009 à 21:32
Bonjour à tous et à toutes, je tente présentement de crée un léger formulaire qui calculera les crédits en recherche et développement. j'aimerais donc mettre deux boutons radio pour savoir si la compagnie est canadienne ou non.
donc un bouton radio "oui" et un "non" et ma formule serait
if (bouton radio=oui)
{calcul complexe avec plusieurs restrictions}
else {autre calcul} est-ce la meilleure façon de procédé si oui quel est le code nécessaire pour le réaliser.

merci beaucoup
Christophe
A voir également:

10 réponses

Ralph303 Messages postés 17 Date d'inscription samedi 30 mai 2009 Statut Membre Dernière intervention 14 avril 2010 8
5 juin 2009 à 23:41
Bonjour !
J’ai trouvé les erreurs que j’ai faites. Ce ne sont que des erreurs d’étourderies.
Il n’y a pas de $ dans $reponse=$_POST[‘ ($)reponse’] ;
Bon, ca encore ça passe, je suis débutant en PHP, mais le = au lieu du == dans le test, honte à moi ! En effet, je fais du C depuis 20 ans…
Sinon, des boutons radio sont exclusifs, on leur donne donc le même nom et des values distinctes.
Merci à Maljuma Kris qui m’a aidé dans le forum de PHPDébutant.

Voici le code correct:

<html>
<head>
<title>Test des boutons radio</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<form method="post" action="ton_fichier_de_traitement.php">
<input type="radio" name="reponse" value="oui">
Oui
<input type="radio" name="reponse" value="non">
Non
<input type="submit" value="Valider">
</form>
</body>
</html>

Ensuite, dans ton_fichier_de_traitement.php:

<?php
$reponse=$_POST['reponse'];

if($reponse=="oui") {
echo "calcul complexe avec plusieurs restrictions";
}
else {
echo "autre calcul";
}
?>

Voilà, j’espère que je t’ai aidé.

Ralph
9
christophe.therrien Messages postés 102 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 9 juin 2010 1
11 juin 2009 à 21:32
OK j'ai trouver mon erreur (stupide erreur) il manque une parenthèse à la 111e ligne soit
$q=((3000000-(($_POST['a']-400000)*10))*0.35)+(($p-(3000000-(($_POST['a']-400000)*10)))*0.2));


Version corrigé:

$q=(((3000000-(($_POST['a']-400000)*10))*0.35)+(($p-(3000000-(($_POST['a']-400000)*10)))*0.2));
1
Ralph303 Messages postés 17 Date d'inscription samedi 30 mai 2009 Statut Membre Dernière intervention 14 avril 2010 8
5 juin 2009 à 22:20
Bonjour !
J’ai la même question que toi, sauf que je sais le faire avec les autres questions de formulaire comme les cases à cocher, les listes ou les zones de texte.
Pour les boutons radio, je n’arrive pas à récupérer la valeur du bouton.

Voici le code:

// Dans index.php

<html>
<head>
<title>Tes des boutons radio</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<form method="post" action="ton_fichier_de_traitement.php">
<input type="radio" name="oui">
Oui
<input type="radio" name="non">
Non
<input type="submit" value="Valider">
</form>
</body>
</html>


Ensuite, dans ton_fichier_de_traitement.php:

<?php
$reponse_oui=$_POST['oui'];
$reponse_non=$_POST['non'];

if($reponse_oui="oui") {
echo "calcul complexe avec plusieurs restrictions";
}
else {
echo "autre calcul";
}
?>

Ca me met l’erreur suivante :
Notice: Undefined index: oui in C:\Program Files\EasyPHP 2.0b1\www\ton_fichier_de_traitement.php on line 2
calcul complexe avec plusieurs restrictions

Voilà, si quelqu’un peut nous aider, merci d’avance.

Ralph
0
christophe.therrien Messages postés 102 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 9 juin 2010 1
8 juin 2009 à 15:11
oui beaucoup merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
christophe.therrien Messages postés 102 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 9 juin 2010 1
8 juin 2009 à 15:39
bon mais ma page ne marche toujours pas pour une raison obscure ce qui me pousse à penser que ce problème provient d'un autre fragment de code si tu dis que cela marchait pour toi...
0
chupa23 Messages postés 149 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 20 juillet 2009 28
8 juin 2009 à 15:51
Le code donné par ralph est censé marcher, pourrais nous dire ce qu'il se passe ?

Attention a ta conditon !
if($reponse_oui="oui") {
C'est pas bon !
if($reponse_oui=="oui") {
C'est bon !
0
christophe.therrien Messages postés 102 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 9 juin 2010 1
8 juin 2009 à 15:59
oui les deux '=' c'Est correct mais moi mes deux boutons se nomme xx pas xx_oui et xx_non voici mon code pour t'aider
<label>
        <input type="radio" name="xx" value="oui"  />
oui</label>
        <input type="radio" name="xx" value="non"  />
        <label>non</label>
[...]
$xx=$_POST['xx']
if($xx=="oui") 
 {...
 }
0
chupa23 Messages postés 149 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 20 juillet 2009 28
8 juin 2009 à 16:06
Je ne vois pas d'erreur dans ton code sauf qu'il manque un ; .Voici un code qui tourne chez moi :
<form action='' method='POST'>
<label>
<input type="radio" name="xx" value="oui"  />
oui</label>
<label><input type="radio" name="xx" value="non"  />
non</label>
<input type="submit"/>
</form>
<?php
$xx=$_POST['xx'];
if($xx=="oui")
{
	echo 'Si Oui faire';
}
else 
{
	echo 'Si Non faire';
}
?>
0
christophe.therrien Messages postés 102 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 9 juin 2010 1
8 juin 2009 à 16:18
D'accord merci je vais chercher ailleurs.
0
christophe.therrien Messages postés 102 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 9 juin 2010 1
8 juin 2009 à 17:35
Bon voilà, cela fait plusieurs jours que je me penche sur cette page de mon site internet et ne semble pas trouver de problème. Par contre la page ne s'affiche pas lorsque j'y accède par internet, il y a donc forcément un problème. en tout désespoir de cause, puisque je ne peux trouver la solution et demande votre aide si précieuse.
<title>Calcul des crédits d'impôts à la R&amp;D pour une entreprise au Québec</title>
</head>

<body>
<p>Calculdes crédits d'impôts à la R&amp;D pour une entreprise au Québec
  
  <?php

if(!preg_match("#^[0-9.]+$#", $_POST['a']) || !preg_match("#^[0-9.]+$#", $_POST['b']) || !preg_match("#^[0-9.]+$#", $_POST['c']) || !preg_match("#^[0-9.]+$#", $_POST['d']) || !preg_match("#^[0-9.]+$#", $_POST['e']) || !preg_match("#^[0-9.]+$#", $_POST['f']) || !preg_match("#^[0-9.]+$#", $_POST['g']) || !preg_match("#^[0-9.]+$#", $_POST['h']) || !preg_match("#^[0-9.]+$#", $_POST['i']) || !preg_match("#^[0-9.]+$#", $_POST['j']) || !preg_match("#^[0-9.]+$#", $_POST['k']))
{
?>
</p>
<form method="post" action="">
  <table width="810" border="1">
    <tr>
      <td width="400">Revenu imposable de l'année précédente</td>
      <td colspan="2"> <input name="a" type="text" value="<?=$_POST["a"]?>" /></td>
    </tr>
    <tr>
      <td><label></label>
        Société privée sous contrôle canadien</td>
      <td colspan="2"><p>
        <label></label>
        <label>
        <input type="radio" name="xx" value="oui"  />
oui</label>
        <input type="radio" name="xx" value="non"  />
        <label>non</label>
<br />
        <label></label>
        <label></label>
        </p>        
      <label></label></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td width="194">Québec</td>
      <td width="194">Canada(hors Québec)</td>
    </tr>
    <tr>
      <td>Salaires directement reliés à la R&amp;D</td>
      <td><input name="b" type="text" id="b" value="<?=$_POST["b"]?>" /></td>
      <td><input name="c" type="text" id="c" value="<?=$_POST["c"]?>" /></td>
    </tr>
    <tr>
      <td>Salaires indirectement reliés à la R&amp;D</td>
      <td><input name="d" type="text" id="d" value="<?=$_POST["d"]?>" /></td>
      <td><input name="e" type="text" id="e" value="<?=$_POST["e"]?>" /></td>
    </tr>
    <tr>
      <td>Sous-traitants non lié à l'entreprise</td>
      <td><input name="f" type="text" id="f" value="<?=$_POST["f"]?>" /></td>
      <td><input name="g" type="text" id="g" value="<?=$_POST["g"]?>" /></td>
    </tr>
    <tr>
      <td><p>Fournitures utilisées directement en R&amp;D</p>      </td>
      <td><input name="g" type="text" id="g" value="<?=$_POST["g"]?>" /></td>
      <td><input name="i" type="text" id="i" value="<?=$_POST["i"]?>" /></td>
    </tr>
    <tr>
      <td colspan="3"><strong>Dépenses en Capital</strong></td>
    </tr>
    <tr>
      <td><p>Utilisation 100% en R&amp;D</p>      </td>
      <td><input name="j" type="text" id="j" value="<?=$_POST["j"]?>" /></td>
      <td><input name="k" type="text" id="k" value="<?=$_POST["k"]?>" /></td>
    </tr>
    <tr>
      <td colspan="3"><input type="submit" value="Calculer " /></td>
    </tr>
  </table>
  <p><label></label>
  </p>
</form>
<?php
}
else
{
$xx=$_POST['xx'];
 $n=($_POST['b']+$_POST['d']+($_POST['f']/2));
 echo 'Dépenses totales (Québec) :'.$n.'$';
 if($xx=="oui") 
 {
  if($n>3000000)
  {
  $o=((3000000*0.375)+(($n-3000000)*0.1775));
  echo 'Crédits RD (Québec) :'.$o.'$';
  }
  else
  {
  $o=($n*0.375);
  echo 'Crédits RD (Québec) :'.$o.'$';
  }
 }
 else
 {
 $o=($n*0.1775);
 echo 'Crédits RD (Québec) :'.$o.'$';
 }
 $p=($_POST['b']+$_POST['c']+$_POST['d']+$_POST['e']+$_POST['f']+$_POST['g']+$_POST['h']+$_POST['i']-($o));
 echo 'Dépenses totales (Canada) :'.$p.'$';
 if($xx=="oui")//Société canadienne
 {
  if($p>=3000000)//Dépenses > 3 000 000
  {
   if($_POST['a']>=400000)//revenu imposable > 400 000
   {
   $q=((3000000-(($_POST['a']-400000)*10))*0.35)+(($p-(3000000-(($_POST['a']-400000)*10)))*0.2));
   echo 'Crédits RD (Canada) :'.$q.'$';
   }
   else//revenu imposable < 400 000 
   {
   $q=((3000000*0.35)+(($p-3000000)*0.2));
   echo 'Crédits RD (Canada) :'.$q.'$';
   }
  } 
  else//Dépenses < 3 000 000
  {
   if($_POST['a']>400000)//revnu imposable > 400 000
   {
    if($p>(300000-(($_POST['a']-400000)*10)))//Dépenses plus petites que 3 000 000 mais plus grands que ce qu'ils ont droit à 35%  
	{
   	$q=(($p-(300000-(($_POST['a']-400000)*10))*0.2)+(300000-((($_POST['a']-400000)*10)*0.35)));
    echo 'Crédits RD (Canada) :'.$q.'$';
	}
    else// Dépenses plus petites que 3 000 000 et plus petites que ce qu'ils ont droit à 35%
	{
	$q=($p*0.35);
	echo 'Crédits RD (Canada) :'.$q.'$';
	}	
   }
   else//revenu imposable < 400 000
   {
   $q=($p*0.35);
   echo 'Crédits RD (Canada) :'.$q.'$';
   }
  }
 } 
 else//Société non-canadienne
 {
 $q=($p*0.2);
 echo 'Crédits RD (Canada) :'.$q.'$';
 } 
}
?>
<form action="" method="post" name="form1" id="form1">
  <input type="submit" name="button2" id="button2" value="Remise à Zéro " />
</form>
</body>
</html>
0