Aller au contenu

Elaborer un simulateur de gain en PHP


silv1

Sujets conseillés

Bonjour! Alors voila, en fait j'aimerais créer un simulateur de gain en php (ou en javascript?) qui permettrait aux visiteurs de mon site de calculer l'économie qu'ils pourraient réaliser en optant pour l'énergie renouvelable; Il s'agirait d'un formulaire ou l'internaute renseigne différents champs. Mais contrairement à un formulaire classique les réponses ne seront pas stockées dans une base de données ou envoyés sur une adresse mail, mais feront l'objet d'un calcul. Une fois le formulaire complété, le visiteur clique sur "voir les résultat" et une nouvelle page ou s'afficheront les résultats du calcul, à savoir une estimation des gains réalisés. En bref il s'agirait d'une sorte de petit simulateur tout simple.

Le problème, c'est que je débute en php... :wacko: Je sais réaliser des formulaires, mais jusqu'ici je n'ai jamais fait de calcul avec les données saisies par les internautes. S'agit t-il d'une mission impossible pour un débutant? Est ce très compliqué? Existe t-il un "squelette" pour ce type de scipt?

Voilà je vous remercie d'avance pour vos réponses!

Modifié par silv1
Lien vers le commentaire
Partager sur d’autres sites

Salut,

faire des calculs avec les données d'un formulaire n'est pas bien compliqué, pas plus compliqué que de les enregistrer dans une base.

Le principe :

- tu envois ton formulaire à une page de traitement php

- tu récupères les valeurs saisit dans le formulaire dans des variables

- tu fais tes calculs du genre $resultat = $1 + $2

- tu affiches dans la page le résultat final avec : echo $resultat.

Il y a plein de sites qui expliquent comment faire, voici une piste

@++

Modifié par birdyman
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

écoute, je ne crois pas que ce soit impossible pour un débutant de faire ceci...

Si tu es capable de faire des formulaires en PHP, tu as déja un bon début...

bon, je vais y aller avec des exemples, et j'expliquerai en même temps...

Exemple de formulaire:

<form name="exemple" action="resultat.php" method="post">

<input type="text" name="champs1" size="40" maxlength="256">
<input type="text" name="champs2" size="40" maxlength="256">
<input type="submit" value="Voir le résultat">


</form>

Voila un formulaire bien simple pour expliquer... le champs "action" représente ce qui sera effectué lorsque l'utilisateur cliquera sur "Voir le résultat".. Souvent, dans les formulaires, la valeur de ce champs sera "mailto:xxx_AT_xxxxx.xxx", mais ici, nous utiliserons la valeur "resultat.php", ce qui amenera l'utilisateur à la page resultat.php lors du clique sur "Voir le résultat"... Pour le reste du code formulaire, ca devrait etre simple si tu es déja capable de faire des formulaires... mais attention, il faut s'assurer que la valeur de method soit "post"..

Bon, deuxièmement:

la page resultat.php:

<?php
$champs1 = $_POST['champs1'];
$champs2 = $_POST['champs2'];

// exemple de calcul
$resultat = $champs1*$champs2;

echo$resultat;

?>

Les deux premières lignes du code "extrait" les informations entrées dans le formulaire.. et le reste, il fait seulement calculer les résultats des deux champs...

Les opérateurs PHP sont:

* = multiplication

/ = division

- = soustraction

+ = addition

Bon, je sais que ce n'est peut-être pas tout vraiment précis, mais la je dois y aller, mais si jamais tu as une quelconque questions sur tout ce que j'ai posté, ne te gêne pas, et demande moi la...

J'espère que je t'ai éclairé un peu sur le sujet...

Passe une belle journée..

Edit: j'ai corrigé l'erreur dans mon premier code..

Modifié par JoP
Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup pour vos réponses! J'y vois déjà beaucoup plus claire! Jop, ton exemple est super bien expliqué, je n'ai plus qu'à me lancer! Lorsque j'aurai établi une première ébauche du script je vous le soumettrai, histoire de voir si je n'ai pas fait trop de bétises :)

Merci encore pour votre aide!

Lien vers le commentaire
Partager sur d’autres sites

Bonjour!

Avant de me lancer dans l'élaboration du simulateur de gains, j'ai essayé de reprendre l'exemple de Jop... J'ai donc intégré le premier code (celui du formulaire) sur une première page (calcul.htm) et j'ai créé une autre page nomé resultat.php

Le calcul (une simple multiplication) s'opère comme prévu mais bizarement le résultat ne s'affiche pas... Voici ce qui apparait dans la barre de naviguation: http://monsite.com/calcul.htm?champs1=3&champs2=2

Comment faire pour que le résultat apparaisse sur la page?

Autre petite question: pour le simulateur que je souhaite mettre en place, il ne s'agit pas de faire des calculs à partir de chiffres indiqués par l'internaute. Je m'explique: en fait, en fonction des réponses je souhaiterais attribuer des nombres bien précis. Pour vous donner un exemple concret, si un internaute coche la région PACA dans la liste des régions, une valeur bien précise lié au degré d'ensoleillement serait alors attribué. Il en serait de même pour l'orientation du toît, le nombe de panneaux solaires, etc. Ensuite il s'agirait d'opérer une ligne de calcul en fonction de ces différents chiffres. Dans ce cas comment fait t-on? Faut-il utiliser une base de données?

Merci d'avance!

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Pour ce qui est de ton test, attention il y a une erreur dans le code de Jop, il y a une répétition de "<form name" au début.

Pour ta deuxième question, c'est la même chose avec les listes par exemple pour les régions si Paca a un indice de 10 et Ile de france 5 :

<select name="region">
<option value="10">Paca</option>
<option value="5">Iles de France</option>
</select>

Dans ta page résultat tu récupère

$region = $_POST['region']

Lien vers le commentaire
Partager sur d’autres sites

Yesssss! j'ai déjà bien avancé sur le scipt et tout marche nickel, c'est génial! Le résultat s'affiche donc comme prévu sur la page resultat.php

Au niveau de la personnalisation de la page php est-il possible de retrouver l'apparence de la page de calcul (celle ou se situe le formulaire et qui est en html)? Autrement dit, peut-on insérer le code qui se trouve sur resultat.php et l'intégrer dans une page html dont on aurait changé la terminaison pour faire une page php? Oula je m'embrouille un peu, je sais pas si vous voyez ce que je veux dire...

Enfin bon je suis déjà super méga content de voir que le simulateur fonctionne!

Lien vers le commentaire
Partager sur d’autres sites

Re Sylv1,

une page .php peut très bien être une page html dont on a changé l'extension pour que le code php soit interprété.

Sinon tu peux très bien faire une seule page.php qui contient ton formulaire et le traitement du formulaire.

Le principe : ton formulaire dans page.php renvoi vers page.php, dans page.php tu testes si la variable $_POST['region'] existe, si elle existe tu affiche le résultat, sinon tu affiches le formulaire.

un exemple de code pour cette page :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
</head>
<body>
<?php
if (isset ($_POST['region'])) {
//si le formulaire a été validé, on récupère les variables et on fait le calcul
$region = $_POST['region'];
$resultat=$region;
} else {
//sinon on affiche le formulaire
$resultat= '<form name="exemple" action="page.php" method="post">
<select name="region">
<option value="10">Paca</option>
<option value="5">Iles de France</option>
</select>
<input type="submit" value="Voir le résultat">
</form>';
}
echo $resultat;
?>
</body>
</html>

Modifié par birdyman
Lien vers le commentaire
Partager sur d’autres sites

Plutot que d'habiller la page resultat.php, est-il possible d'afficher directement le résultat du simulateur sur la page ou se trouve le formulaire?

Merci d'avance pour vos suggestions!

Lien vers le commentaire
Partager sur d’autres sites

Ah désolé birdyman tu as répondu pendant que j'écrivais ce nouveau post et tu as donc anticipé ma question dans ta réponse :) Merci beaucoup pour ton aide, je vais tout de suite essayer ça!

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...