Bonjour,

Actuellement en formation et première participation sur ce forum que j'ai pourtant pas mal écumé au cours de cette année, notamment pour ce qui concerne l’intégration HTML CSS.

Bref aujourd’hui je suis sur un exo de développement ultra simple et pourtant je ne trouve pas la solution.

Mon but faire un form de devis simple en PHP :

Produit 1 - prix unité (fixe) - quantité (modifiable)
Produit 2 - prix unité (fixe) - quantité (modifiable)
Produit 3 - prix unité (fixe) - quantité (modifiable)

Bouton calcul

Affiche mon calcul

Je m’arrête là pour les infos et attend un premier retour de votre part afin de développer.

Mercitatous
Modifié par urlien (08 Apr 2014 - 16:57)
La logique de base :

Coté "business php" :
$_GET ou $_POST pour récupérer le contenu du formulaire
vérification des variables (filter_vars() )
tableau php pour avoir les prix en dur (vu qu'ils sont fixes, surtout ne jamais se fier aux infos de l'utilisateurs)
calcul

coté html (avec un peu de php)
si formulaire rempli sans erreur >> retourne le prix
si formulaire rempli avec erreur>> retourne les erreurs
si formulaire pas rempli>> retourne le formulaire (qui renvoie sur la même page avec le submit pour lancer le calcul)
Re..
Du coup j 'ai changé de direction...je suis parti en javascript Smiley confus

<body> 

<script type="text/javascript">

function calculproduit1(){
var prixUnitaire = document.getElementById("produit1").value;
var	quantite = document.getElementById("quantite1").value;


resultat.value = (parseFloat(quantite) * parseFloat(prixUnitaire));

return false;
}

function calculproduit2(){
var prixUnitaire = document.getElementById("produit2").value;
var	quantite = document.getElementById("quantite2").value;


resultat.value = (parseFloat(quantite) * parseFloat(prixUnitaire));

return false;
}

function calculproduit3(){
var prixUnitaire = document.getElementById("produit3").value;
var	quantite = document.getElementById("quantite3").value;


resultat.value = (parseFloat(quantite) * parseFloat(prixUnitaire));

return false;
}

function calculproduit4(){
var prixUnitaire = document.getElementById("produit4").value;
var	quantite = document.getElementById("quantite4").value;


resultat.value = (parseFloat(quantite) * parseFloat(prixUnitaire));

return false;
}

function calculproduit5(){
var prixUnitaire = document.getElementById("produit5").value;
var	quantite = document.getElementById("quantite5").value;


resultat.value = (parseFloat(quantite) * parseFloat(prixUnitaire));

return false;
}

function calculproduit6(){
var prixUnitaire = document.getElementById("produit6").value;
var	quantite = document.getElementById("quantite6").value;


resultat.value = (parseFloat(quantite) * parseFloat(prixUnitaire));

return false;
}
/*calcul total*/

function calculTotal(){
var pun = calculproduit1();
var pdeux = calculproduit2();
var	resultat = document.getElementById("resultat");

resultat.value = (parseFloat(pun) * parseFloat(pdeux));

return false;
}
/**/



/*reset du form*/
function resetForm(){
document.getElementById('formDevis').reset();
}

</script>



	<form id='formDevis'>
		<table>
			<tr>
				<td>PRODUIT</td>
				<td>Prix unitaires</td>
				<td>Quantité</td>		
			</tr>
			<tr>
				<td>produit1</td>
				<td><input type="hidden" name="prixunite" id="produit1" value="8" />8 €</td>
				<td><input type="text" name="quantite" value="0" id="quantite1"/></td>			
			
			</tr>
			<tr>
				<td>produit2</td>
				<td><input type="hidden" name="prixunite" id="produit2" value="16" />16 €</td>
				<td><input type="text" name="quantite" value="0" id="quantite2"/></td>
			
			</tr>
			<tr>
				<td>produit3</td>
				<td><input type="hidden" name="prixunite" id="produit3" value="32" />32 €</td>
				<td><input type="text" name="quantite" value="0" id="quantite3"/></td>			
				
			</tr>
			<tr>
				<td>produit4</td>
				<td><input type="hidden" name="prixunite" id="produit4" value="41" />41 €</td>
				<td><input type="text" name="quantite" value="0" id="quantite4"/></td>
			
			</tr>
			<tr>
				<td>produit5</td>
				<td><input type="hidden" name="prixunite" id="produit5" value="50" />50 €</td>
				<td><input type="text" name="quantite" value="0" id="quantite5"/></td>
			
			</tr>
			<tr>
				<td>produit6</td>
				<td><input type="hidden" name="prixunite" id="produit6" value="75" />75 €</td>
				<td><input type="text" name="quantite" value="0" id="quantite6"/></td>
			
			
			</tr>
		</table>
        
		<button type="submit" name="submit" value="valider" id="valider" onclick="return calculTotal();">Mon estimation</button>
            <input type="text" name="resultat" id="resultat"/> €
       <br/> <button onclick="resetForm()">Nouvelle estimation</button>
	</form>

</body>


Du coup le calcul par ligne fonctionne mais pour le calcul total de chaque ligne je Bug...
Enfin je JS me parait plus simple...
Modifié par urlien (09 Apr 2014 - 12:18)
Attention le js est un langage client qui est interprété par le navigateur de l'utilisateur, les odnnées retourné par celui sont donc tous sauf fiables.

De plus le but d'un formulaire est d'envoyé des données à ton serveur si tu les gère seulement en js, elle resteront sur le navigateur de ton utilisateur et elle ne parviendra jamais à ton serveur ce qui est inutile.


De plus si tu apprend le php et que tu es bloqué ca ne sert à rien de changer de techno (quoique tu peux aussi te lancer dans du python ou du ruby, ou autre..) mais en tout cas pas du js ce n'est pas le même but. En gros JS (à part nodeJS et autre exceptions) c'est pour dynamiser ta page ce doit être quelque chose d'optionnel (tout le monde n'active pas le JS), c'est pour cela qu'il faut que tu apprenne un langage serveur.

Donc relis tes cours, la programmation n'étant pas quelque chose d'inné cela te prendra un peu de temps mais tu y arrivera. Bon courage.
Merci de ta réponse...

Je suis retourné vers le JS en fonction des recherche que j ai pu faire.
Afficher une estimation de prix dynamiquement...Mais je n ai pas encore abandonné l'idée PHP mais comme je galéré depuis 2 jours il fallait qu je fasse quelque chose pour relancer la machine...

Merci en tous les cas de ces conseils precieux...
Pour les estimations de prix dynamique comme tu dis, le JS est tout indiqué mais je tenais juste a te clarifier le fait que le js n'est que au niveau client. Smiley cligne
salut,
je ne vois pas en quoi du JS ne serait pas fiable pour des calculs. De plus, on peut très bien communiquer avec le serveur via Ajax et pour les gens qui le désactivent, ils ne sont pas non plus aussi nombreux. Par contre pour la sécurité des données et si ce formulaire doit te transmettre des informations (et non juste donner des indications au visiteur) alors il faut à tout prix utiliser PHP.
Perso j'opterais aussi pour la solution PHP et comme déjà dit, il n'y a rien d'extraordinaire.
Le problème de fiabilité de Js c'est qu'il est interprété directement par l'utilisateur, en temps que dev on n'a pas la main sur ce que fait le js sur l'ordi du client.

Donc c'est pour cela qu'il ne faut jamais faire confiance aux infos récupérér et transmise par du JS et tout revérifier coté serveur à l'arrivé des données.

C'est souvent le cas pour les formulaires vérifié par js, certains font l'erreur de ne pas vérifier une deuxième fois sur le serveur l'intégrité des données.
Ok ok,
Alors dans ma novice logique, j'étais parti de la rflexion suivante :

1 - Utilise le javascript pour réaliser le calcul du devis dynamiquement.
2 - Pour récupérer les infos et les enregistrer, j'utiliserai PHP

Cela semble t il logique ?

Merci à vous et vive le soleil... Smiley smile