Comment récupérer une valeur HTML dans du PHP

Fermé
jacobmboyo - 15 oct. 2017 à 21:51
 jacobmboyo - 17 oct. 2017 à 07:01
Bonjour,

Je suis veux mettre en place un système de calcul selon une grille tarifaire. Prenom le cas d'un transfert d'argent, pour tout transfert <= 5000 F le cout est de 200F ce qui fait une total de 5200F.

J'ai déjà rédigé le script qui marche bien, lorsque je saisie une valeur, celle-ci est correctement calculé. Le problème maintenant est le fait que les valeurs (montant du transfert) doivent être saisie dans un formulaire et j'arrive pas à transférer les données du formulaire dans mon script.

Voici mon code source:
<center><form action="nguere.php" method="post">
<input type="text" name="max" value="0"/>F CFA
<input name="button" type="submit" id="button" value="CALCULER" /> </form>
<br>
<strong>Le Montant TOTAL A PAYER est de: </strong><br><h2>
<?php $montant= 500; ?> //Le montant à Calculer
<?php
if($montant <= 5000){
echo $montant + 200;
}
else
if($montant <= 10000){
echo $montant + 400;
}
else
if($montant <= 15000){
echo $montant + 600;
}
else
if($montant <= 25000){
echo $montant + 900;
}
else
if($montant <= 35000){
echo $montant + 1100;
}
else
if($montant <= 50000){
echo $montant + 1200;
}
else
if($montant <= 75000){
echo $montant + 1700;
}
else
if($montant <= 100000){
echo $montant + 2000;
}
else
if($montant <= 150000){
echo $montant + 2200;
}
else
if($montant <= 200000){
echo $montant + 2400;
}
else
if($montant <= 250000){
echo $montant + 2900;
}
else
if($montant <= 300000){
echo $montant + 3900;
}
else
if($montant <= 400000){
echo $montant + 4900;
}
else
if($montant <= 200000){
echo $montant + 2400;
}
else
if($montant <= 750000){
echo $montant + 7400;
}
else
if($montant <= 1000000){
echo $montant + 9900;
}
else
if($montant <= 2000000){
echo $montant + 14900;
}
else
if($montant <= 3000000){
echo $montant + 19900;
}
else?>
F </h2>
</center>

Merci à l'avance de votre aide,

3 réponses

jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 735
Modifié le 16 oct. 2017 à 00:30
Bonjour

Où traites tu les variables $_POST ?

PS: jete un oeil à ceci:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.
Cordialement, 
Jordane                                                                 
0
mandolorien Messages postés 109 Date d'inscription dimanche 9 septembre 2012 Statut Membre Dernière intervention 9 mars 2018 3
16 oct. 2017 à 13:01
Voici la solution à ton problème :
n'oublie pas lors de la saisie d'un formulaire de préciser tout au début de ton fichier de réception des données (dans ce cas nguere.php) :
session_start();


fichier index.php :
<?php session_start(); ?>
<h1> CAS N°1 : Envoi des données dans le même fichier </h1>
<center>
	<form action="" method="POST">
	<input type="text" name="max" placeholder="0"/>F CFA
	<input name="button" type="submit" id="button" value="CALCULER" /> </form>
	<br>
	<strong>Le Montant TOTAL A PAYER est de: </strong><br>

<?php
if(isset($_POST['max']) && !empty($_POST['max']))
{
	$montant = intval($_POST['max']);
	if($montant <= 5000){
		echo $montant + 200;
	}elseif($montant <= 10000){
		echo $montant + 400;
	}elseif($montant <= 15000){
		echo $montant + 600;
	}elseif($montant <= 25000){
		echo $montant + 900;
	}elseif($montant <= 35000){
		echo $montant + 1100;
	}elseif($montant <= 50000){
		echo $montant + 1200;
	}elseif($montant <= 75000){
		echo $montant + 1700;
	}elseif($montant <= 100000){
		echo $montant + 2000;
	}elseif($montant <= 150000){
		echo $montant + 2200;
	}elseif($montant <= 200000){
		echo $montant + 2400;
	}elseif($montant <= 250000){
		echo $montant + 2900;
	}elseif($montant <= 300000){
		echo $montant + 3900;
	}elseif($montant <= 400000){
		echo $montant + 4900;
	}elseif($montant <= 200000){
		echo $montant + 2400;
	}elseif($montant <= 750000){
		echo $montant + 7400;
	}elseif($montant <= 1000000){
		echo $montant + 9900;
	}elseif($montant <= 2000000){
		echo $montant + 14900;
	}elseif($montant <= 3000000){
		echo $montant + 19900;
	}
	else{ echo "problème de calcule !";}
}
else{
	echo "Veuillez saisir le champs !";
}
?>
</center>
<h1> CAS N°2 : Envoi des données dans le fichier nguere </h1>
<center>
	<form action="nguere.php" method="POST">
	<input type="text" name="max" placeholder="0"/>F CFA
	<input name="button" type="submit" id="button" value="CALCULER" /> </form>
</center>


fichier nguere.php :

<?php session_start(); ?>
<h1> CAS N°2 : Envoi des données dans le fichier nguere </h1>
<?php
if(isset($_POST['max']) && !empty($_POST['max']))
{
	$montant = intval($_POST['max']);
	if($montant <= 5000){
		echo $montant + 200;
	}elseif($montant <= 10000){
		echo $montant + 400;
	}elseif($montant <= 15000){
		echo $montant + 600;
	}elseif($montant <= 25000){
		echo $montant + 900;
	}elseif($montant <= 35000){
		echo $montant + 1100;
	}elseif($montant <= 50000){
		echo $montant + 1200;
	}elseif($montant <= 75000){
		echo $montant + 1700;
	}elseif($montant <= 100000){
		echo $montant + 2000;
	}elseif($montant <= 150000){
		echo $montant + 2200;
	}elseif($montant <= 200000){
		echo $montant + 2400;
	}elseif($montant <= 250000){
		echo $montant + 2900;
	}elseif($montant <= 300000){
		echo $montant + 3900;
	}elseif($montant <= 400000){
		echo $montant + 4900;
	}elseif($montant <= 200000){
		echo $montant + 2400;
	}elseif($montant <= 750000){
		echo $montant + 7400;
	}elseif($montant <= 1000000){
		echo $montant + 9900;
	}elseif($montant <= 2000000){
		echo $montant + 14900;
	}elseif($montant <= 3000000){
		echo $montant + 19900;
	}
	else{ echo "problème de calcule !";}
}
else{
	echo "Veuillez saisir le champs !";
}
?>

0
Merci beaucoup mandolorien,
Ton aide m'a été très précieuse. En effet, mon problème est résolus!
:-)
0
jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 735
16 oct. 2017 à 16:50
Bonjour,

Quelques remarques sur le code proposé précédemeent...
- intVal te limitera à des valeurs "entières" (donc pas de nombre à virgule)
- Le code PHP placé n'importe où au milieu du html de rend pas le code (sur le long terme....) facilement maintenable. Il vaut mieux le placer AVANT le html.
- !emtpy... fait déjà un isset. pas besoin de mettre les deux !
- Lorsque l'on a beaucoup de conditions... il vaut mieux éviter des elseif en pagaille. Je préconise plutôt un switch.

Bref,
Essaye ça :
?php 
session_start(); 

$max = !empty($_POST['max']) ? floatval($_POST['max']) : NULL;
$montant = "";
if($max) {
	
	switch($max){
		
		case <= 5000
		  $montant = $max + 200;
		  break;
		case <= 10000
		  $montant = $max + 400;
		  break;  
		case <= 15000
		  $montant = $max + 600;
		  break;  
		case <= 25000
		  $montant = $max + 900;
		  break;    
		case <= 35000
		  $montant = $max + 1100;
		  break;  
		case <= 50000
		  $montant = $max + 1200;
		  break;  
		case <= 75000
		  $montant = $max + 1700;
		  break;    
		case <= 100000
		  $montant = $max + 2000;
		  break;    
		case <= 15000
		  $montant = $max + 2200;
		  break;  
		case <= 200000
		  $montant = $max + 2400;
		  break;  
		case <= 250000
		  $montant = $max + 2900;
		  break;  
		case <= 300000
		  $montant = $max + 3900;
		  break;  
		case <= 400000
		  $montant = $max + 4900;
		  break;  
		default:
			$msg_error = "problème de calcule !";
		break;
	}
}else{
	$msg_error = "Veuillez saisir le champs !";
}
?>

?>

	<form action="" method="POST">
	<input type="text" name="max" placeholder="0"/>F CFA
	<input name="button" type="submit" id="button" value="CALCULER" /> </form>
	<br>
	<strong>Le max TOTAL A PAYER est de: </strong><br> <?php echo $montant; ?>
	
	

0
Merci pour cette remarque et cette idée très utiles!
0