Condition avec bouton radio [PHP]

Résolu
christophe.therrien Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   -  
christophe.therrien Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   8
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   8
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   28
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   28
 
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   Statut Membre Dernière intervention   1
 
D'accord merci je vais chercher ailleurs.
0
christophe.therrien Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   1
 
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