liste déroulante + calcul
- Accueil
- Forum
- Programmation
- PHP
- liste déroulante + calcul
augustin Le 6 septembre 2016 à 19:36 (Édité le 25 janvier 2019 à 17:52)
Etant débutant en PHP j'essaye d'apprendre chaque semaine un petit truc.
Ici j'aimerais avoir 2 listes déroulantes:
la première liste déroulante s'appelle domicile
il y a 3 villes (melin, wavre, namur)
dans la second liste déroulante qui se nomme gare
il y a aussi 3 villes (bruxelles, liège, charleroi)
ensuite il y a un bouton calculer et résultat.
Je voudrais que lorsqu'un utilisateur par exemple sélectionne melin (domicile) et bruxelles (gare)
dans résultat il y a la somme de 20 € qui s'affiche
lorsque l'utilisateur sélectionne wavre (domicile) et bruxelles (gare) il y a la somme de 40 €
pour namur (domicile) et bruxelles (gare) la somme doit être de 10 €
Avez-vous une idée ???
augustin Le 6 septembre 2016 à 19:37 (Édité le 6 septembre 2016 à 19:38)
Merci
<form method="post" action="">
<fieldset>
<legend>Formulaire</legend>
<label for="domicile">Domicile: </label>
<select id="domicile" name="domicile">
<option value="1">1342-Melin</option>
<option value="2">1300-Wavre</option>
<option value="3">7777-Namur</option>
</select>
<br />
<label for="gare">Gare: </label>
<select id="gare" name="gare">
<option value="0" selected="selected">Bruxelles</option>
<option value="1">Liege</option>
<option value="10">Charleroi</option>
</select>
<br />
<input type="submit" value="Calculer" />
</fieldset>
</form>
<div>
<label for="resultat">Résultat : </label>
<input id="resultat" type="text" readonly="readonly" />
</div>
<?php
if(isset($_POST['domicile']) AND isset($_POST['choix']) AND isset($_POST['gare']))
{
$domicile = ($_POST['domicile']);
$gare = ($_POST['gare']);
?>
augustin Le 7 septembre 2016 à 12:59 (Édité le 7 septembre 2016 à 16:48)
<form method="post" action="">
<fieldset>
<legend>Formulaire</legend>
<label for="domicile">Domicile: </label>
<select id="domicile" name="domicile">
<option value="1">1342-Melin</option>
<option value="2">1300-Wavre</option>
<option value="3">7777-Namur</option>
</select>
<br />
<label for="gare">Gare: </label>
<select id="gare" name="gare">
<option value="1" selected="selected">Bruxelles</option>
<option value="2">Liege</option>
<option value="3">Charleroi</option>
</select>
<br />
<input type="submit" value="Calculer" />
</fieldset>
</form>
<?php
if(isset($_POST['domicile']) && isset($_POST['gare']))
{
$arTarifs = array(
1 => array( //melin
1=>20,
2=>75,
3=>40,
),
2 => array( //wavre
1=>4,
2=>12,
3=>67
),
3 => array(
0=>10,
1=>54,
10=>89
)
);
if (isset($arTarifs[$_POST['domicile']][$_POST['gare']])) {
echo $arTarifs[$_POST['domicile']][$_POST['gare']] . '€';
}
else {
echo 'aucun tarif pour ce trajet';
}
}
?>
TheOldNoob Le 7 septembre 2016 à 15:25 (Édité le 1 janvier 1970 à 01:00)
Je viens seulment de voir ton message.
Cool que tu y soit arrivé. C'est le meilleur des apprentissage 😉
augustin Le 7 septembre 2016 à 16:52 (Édité le 1 janvier 1970 à 01:00)
Par contre, j'ai une petite question...
J'ai donc deux listes déroulantes avec mes villes...
domicile (1er liste déroulante), gare (2ème liste déroulante)
Quand je sélectionne Melin --> Bruxelles il m'affiche bien la somme de 20 euros
Quand je sélectionne Melin -->Liège, il m'affiche bien la somme de 75 euros
cependant ma liste déroulante ne reste pas sur Melin --> Liège mais repasse sur Melin-Bruxelles, ça m'embête un peu...
est-ce que je dois créer une session ???
TheOldNoob Le 7 septembre 2016 à 19:07 (Édité le 1 janvier 1970 à 01:00)
Par contre, ton php doit être avant ton html, comme ça :
<?php
if(isset($_POST['domicile']) && isset($_POST['gare']))
{
$arTarifs = array(
1 => array( //melin
1=>20,
2=>75,
3=>40,
),
2 => array( //wavre
1=>4,
2=>12,
3=>67
),
3 => array(
0=>10,
1=>54,
10=>89
)
);
}
?>
<form method="post" action="">
<fieldset>
<legend>Formulaire</legend>
<label for="domicile">Domicile: </label>
<select id="domicile" name="domicile">
<option value="1">1342-Melin</option>
<option value="2">1300-Wavre</option>
<option value="3">7777-Namur</option>
</select>
<br />
<label for="gare">Gare: </label>
<select id="gare" name="gare">
<option value="1" >Bruxelles</option>
<option value="2">Liege</option>
<option value="3">Charleroi</option>
</select>
<br />
<input type="submit" value="Calculer" />
</fieldset>
</form>
<div style="font-size: 38rem; color: red;">
<?php
if (isset($arTarifs[$_POST['domicile']][$_POST['gare']])) {
echo $arTarifs[$_POST['domicile']][$_POST['gare']] . '€';
}
else {
echo 'aucun tarif pour ce trajet';
}
?>
</div>
augustin Le 7 septembre 2016 à 22:46 (Édité le 1 janvier 1970 à 01:00)
On ne sait pas faire quelques choses pour qu'ils ne reprennent pas automatiquement les premières valeurs ??
ps: merci pour tes modifs 😜
augustin Le 8 septembre 2016 à 21:41 (Édité le 1 janvier 1970 à 01:00)
J'y suis arrivé, ça doit pas être beau à voir pour vos yeux... 😄
<?php
if(isset($_POST['domicile']) && isset($_POST['gare']))
{
$arTarifs = array(
1 => array( //melin
1=>20,
2=>75,
3=>40,
),
2 => array( //wavre
1=>40,
2=>12,
3=>67
),
3 => array(
1=>54,
2=>12,
3=>89
),
4 => array(
1=>12,
2=>24,
3=>29
)
);
}
?>
<form method="post" action="">
<fieldset>
<legend>Formulaire</legend>
<label for="domicile">Domicile: </label>
<select id="domicile" name="domicile">
<option value="1"<?php if(!empty($_POST['domicile']) && $_POST['domicile'] == 1) echo ' selected="selected"'?>>1342-Melin</option>
<option value="2"<?php if(!empty($_POST['domicile']) && $_POST['domicile'] == 2 ) echo ' selected="selected"'?>>Wavre</option>
<option value="3"<?php if(!empty($_POST['domicile']) && $_POST['domicile'] == 3) echo ' selected="selected"'?>>Namur</option>
</select>
<br />
<label for="gare">Gare: </label>
<select id="gare" name="gare">
<option value="1"<?php if(!empty($_POST['gare']) && $_POST['gare'] == 1) echo ' selected="selected"'?>>Bruxelles</option>
<option value="2"<?php if(!empty($_POST['gare']) && $_POST['gare'] == 2) echo ' selected="selected"'?>>Liege</option>
<option value="3"<?php if(!empty($_POST['gare']) && $_POST['gare'] == 3) echo ' selected="selected"'?>>Namur</option>
</select>
<br />
<input type="submit" value="Calculer" />
</fieldset>
</form>
<div style="font-size: 38rem; color: red;">
<?php
if (isset($arTarifs[$_POST['domicile']][$_POST['gare']])) {
echo $arTarifs[$_POST['domicile']][$_POST['gare']] . '€';
}
else {
echo 'aucun tarif pour ce trajet';
}
?>
</div>