Addition des valeurs issues de <select...>

Résolu/Fermé
oliopur Messages postés 11 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 24 mars 2012 - Modifié par oliopur le 23/03/2012 à 15:23
oliopur Messages postés 11 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 24 mars 2012 - 24 mars 2012 à 11:16
Bonjour,

J'ai un gros soucis en tentant de reecrire une page PHP (HTML)
en effet, je souhaite additionner dans une variable (moretime), à chaque changement les valeurs choisies avec select et je n'y arrive pas.
il y a 4 select : un pour les jours, un pour les heures, un pour les minutes et un pour les secondes.
ainsi qu'une variable pour l'addition de toutes ces valeurs,
j'avais pensé à :
$moretime=($moretimeJ*24*60*60)+($moretimeH*24*60)+($moretimeM*60)+moretimeS
avec un 'onchange' dans les <select> mais ça ne fonctionne pas!
Merci à ceux qui voudraient bien m'aider...

<tr style="height:23px; background-color:#DFDFFE">  
<td>Temps</td>  
<?php $moretime=86400;    
   //soit 3 jours en secondes   
?>  
<td>  
<!-------------- DEBUT TRAITEMENT ---------------------------------->  
<select style="width:50px;"  name="moretimeJ" >  
 <option <?php echo ($moretimeJ=="0") ? " selected=\"selected\" " : " "; ?>  
   value="0">0</option>  
 <option <?php echo ($moretimeJ=="1") ? " selected=\"selected\" " : " "; ?>  
   value="1">1</option>  
 <option <?php echo ($moretimeJ=="2") ? " selected=\"selected\" " : " "; ?>   
  value="2">2</option>  
 <option <?php echo ($moretimeJ=="3") ? " selected=\"selected\" " : " "; ?>   
   value="3">3</option>  
 <option <?php echo ($moretimeJ=="4") ? " selected=\"selected\" " : " "; ?>   
   value="4">4</option>  
</select> J +   

<select style="width:50px;" name="moretimeH" >  
 <option <?php echo ($moretimeH=="0") ? " selected=\"selected\" " : " "; ?>   
   value="0">0 </option>  
 <option <?php echo ($moretimeH=="1") ? " selected=\"selected\" " : " "; ?>   
value="1">1</option>  
 <option <?php echo ($moretimeH=="2") ? " selected=\"selected\" " : " "; ?>   
value="2">2</option>  
 <option <?php echo ($moretimeH=="3") ? " selected=\"selected\" " : " "; ?>   
value="3">3</option>  
 <option <?php echo ($moretimeH=="4") ? " selected=\"selected\" " : " "; ?>   
value="4">4</option>  
 <option <?php echo ($moretimeH=="5") ? " selected=\"selected\" " : " "; ?>   
value="5">5</option>  
 <option <?php echo ($moretimeH=="6") ? " selected=\"selected\" " : " "; ?>   
value="6">6</option>  
 <option <?php echo ($moretimeH=="7") ? " selected=\"selected\" " : " "; ?>   
value="7">7</option>  
 <option <?php echo ($moretimeH=="8") ? " selected=\"selected\" " : " "; ?>   
   value="8">8</option>  
 <option <?php echo ($moretimeH=="9") ? " selected=\"selected\" " : " "; ?>   
   value="9">9</option>  
 <option <?php echo ($moretimeH=="10") ? " selected=\"selected\" " : " "; ?>    
   value="10">10 </option>  
 <option <?php echo ($moretimeH=="11") ? " selected=\"selected\" " : " "; ?>  
   value="11">11</option>  
 <option <?php echo ($moretimeH=="12") ? " selected=\"selected\" " : " "; ?>  
   value="12">12</option>  
 <option <?php echo ($moretimeH=="13") ? " selected=\"selected\" " : " "; ?>  
   value="13">13</option>  
 <option <?php echo ($moretimeH=="14") ? " selected=\"selected\" " : " "; ?>   
   value="14">14</option>  
 <option <?php echo ($moretimeH=="15") ? " selected=\"selected\" " : " "; ?>  
   value="15">15</option>  
 <option <?php echo ($moretimeH=="16") ? " selected=\"selected\" " : " "; ?>  
   value="16">16</option>  
 <option <?php echo ($moretimeH=="17") ? " selected=\"selected\" " : " "; ?>  
   value="17">17</option>  
 <option <?php echo ($moretimeH=="18") ? " selected=\"selected\" " : " "; ?>  
   value="18">18</option>  
 <option <?php echo ($moretimeH=="19") ? " selected=\"selected\" " : " "; ?>  
   value="19">19</option>  
 <option <?php echo ($moretimeH=="20") ? " selected=\"selected\" " : " "; ?>  
   value="20">20</option>  
 <option <?php echo ($moretimeH=="21") ? " selected=\"selected\" " : " "; ?>  
 value="21">21</option>  
 <option <?php echo ($moretimeH=="22") ? " selected=\"selected\" " : " "; ?>  
   value="22">22</option>  
 <option <?php echo ($moretimeH=="23") ? " selected=\"selected\" " : " "; ?>  
 value="23">23</option>  
</select> H +   
       
<select style="width:50px;" name="moretimeM" >  
 <option <?php echo ($moretimeM=="0") ? " selected=\"selected\" " : " "; ?>   
   value="0">0</option>  
 <option <?php echo ($moretimeM=="1") ? " selected=\"selected\" " : " "; ?>   
   value="1">1</option>  
 <option <?php echo ($moretimeM=="2") ? " selected=\"selected\" " : " "; ?>  
    value="2">2</option>  
 <option <?php echo ($moretimeM=="3") ? " selected=\"selected\" " : " "; ?>   
   value="3">3 </option>  
 <option <?php echo ($moretimeM=="4") ? " selected=\"selected\" " : " "; ?>   
   value="4">4</option>  
 <option <?php echo ($moretimeM=="5") ? " selected=\"selected\" " : " "; ?>  
   value="5">5</option>  
 <option <?php echo ($moretimeM=="6") ? " selected=\"selected\" " : " "; ?>   
   value="6">6</option>  
 <option <?php echo ($moretimeM=="7") ? " selected=\"selected\" " : " "; ?>   
   value="7">7</option>  
 <option <?php echo ($moretimeM=="8") ? " selected=\"selected\" " : " "; ?>   
   value="8">8</option>  
 <option <?php echo ($moretimeM=="9") ? " selected=\"selected\" " : " "; ?>  
   value="9">9</option>  
 <option <?php echo ($moretimeM=="10") ? " selected=\"selected\" " : " "; ?>  
   value="10">10</option>  
 <option <?php echo ($moretimeM=="15") ? " selected=\"selected\" " : " "; ?>  
   value="15">15</option>  
 <option <?php echo ($moretimeM=="20") ? " selected=\"selected\" " : " "; ?>  
   value="20">20</option>  
 <option <?php echo ($moretimeM=="30") ? " selected=\"selected\" " : " "; ?>  
   value="30">30</option>  
 <option <?php echo ($moretimeM=="45") ? " selected=\"selected\" " : " "; ?>  
   value="45">45</option>  
</select> M +   

<select style="width:50px;" name="moretimeS" >  
<option <?php echo ($moretimeS=="0") ? " selected=\"selected\" " : " "; ?>  
value="0">0</option>  
<option <?php echo ($moretimeS=="15") ? " selected=\"selected\" " : " "; ?>   
   value="15">15</option>  
<option <?php echo ($moretimeS=="30") ? " selected=\"selected\" " : " "; ?>  
   value="30">30</option>  
<option <?php echo ($moretimeS=="45") ? " selected=\"selected\" " : " "; ?>  
   value="45">45</option>  
</select> S (Valeur par défaut 3 jours.)   
<!-------------- FIN ---------------------------------->  
<br />  
</td>  
</tr>  



2 réponses

Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
Modifié par Doctor C le 23/03/2012 à 18:47
Pourrais-tu décrire un peu plus ton problème? Quand tu dis que ça ne marche pas, qu'est-ce qui ne fonctionne pas?

Sinon, le onChange sur un select appelle du code javascript alors tu pourrais faire une partie de ton travail uniquement avec du js.

<select style="width:50px;"  name="selJour" id="selJour" onchange="traiterInfo()">  
<OPTION VALUE="0">0</OPTION>  
...  
</select>  


Et la fonctione javascript:

function traiterInfo()  
{  
 var valeurJour= parseInt(document.getElementById("selJour").value);  
 var valeurHeure= parseInt(document.getElementById("selHeure").value);  
 var valeurMinute= parseInt(document.getElementById("selMinute").value);  
 var valeurSeconde= parseInt(document.getElementById("selSeconde").value);  
   
 var input = document.getElementById("reponse");  
 var info = "";   

 info = (valeurJour*24*60*60)+(valeurHeure*60*60)+(valeurMinute*60)+valeurSeconde  
   
 input.value = info;  
}


Et selon moi, tu devrais vraiment générer tes "select" avec des boucles en php, ce serait beaucoup moins lourd à lire.

Un petit exemple de page html serait:
<html> 
<head> 

<SCRIPT type="text/javascript"> 

function initialiserPage() 
{ 
 document.getElementById("reponse").value = "Somme..."; 
} 

function traiterInfo() 
{ 
 var valeurJour= parseInt(document.getElementById("selJour").value); 
 var valeurHeure= parseInt(document.getElementById("selHeure").value); 
 var valeurMinute= parseInt(document.getElementById("selMinute").value); 
 var valeurSeconde= parseInt(document.getElementById("selSeconde").value); 
  
 var input = document.getElementById("reponse"); 
 var info = "";  

 info = (valeurJour*24*60*60)+(valeurHeure*60*60)+(valeurMinute*60)+valeurSeconde 
  
 input.value = info; 
} 

</SCRIPT> 


</head> 

<body onload="initialiserPage()"> 

Jours: <select style="width:50px;"  name="selJour" id="selJour" onchange="traiterInfo()">  
<OPTION VALUE="0">0</OPTION> 
<OPTION VALUE="1">1</OPTION> 
<OPTION VALUE="2">2</OPTION> 
<OPTION VALUE="3">3</OPTION> 
<OPTION VALUE="4">4</OPTION> 
<OPTION VALUE="5">5</OPTION> 
<OPTION VALUE="6">6</OPTION> 
<OPTION VALUE="7">7</OPTION> 
</select> 

<br /> 

Heures: <select style="width:50px;"  name="selHeure" id="selHeure" onchange="traiterInfo()">  
<OPTION VALUE="0">0</OPTION> 
<OPTION VALUE="1">1</OPTION> 
<OPTION VALUE="2">2</OPTION> 
<OPTION VALUE="3">3</OPTION> 
<OPTION VALUE="4">4</OPTION> 
<OPTION VALUE="5">5</OPTION> 
<OPTION VALUE="6">6</OPTION> 
<OPTION VALUE="7">7</OPTION> 
<OPTION VALUE="8">8</OPTION> 
<OPTION VALUE="9">9</OPTION> 
<OPTION VALUE="10">10</OPTION> 
<OPTION VALUE="11">11</OPTION> 
<OPTION VALUE="12">12</OPTION> 
<OPTION VALUE="13">13</OPTION> 
<OPTION VALUE="14">14</OPTION> 
<OPTION VALUE="15">15</OPTION> 
<OPTION VALUE="16">16</OPTION> 
<OPTION VALUE="17">17</OPTION> 
<OPTION VALUE="18">18</OPTION> 
<OPTION VALUE="19">19</OPTION> 
<OPTION VALUE="20">20</OPTION> 
<OPTION VALUE="21">21</OPTION> 
<OPTION VALUE="22">22</OPTION> 
<OPTION VALUE="23">23</OPTION> 
<OPTION VALUE="24">24</OPTION> 
</select> 

<br /> 

Minutes: <select style="width:50px;"  name="selMinute" id="selMinute" onchange="traiterInfo()">  
<OPTION VALUE="0">0</OPTION> 
<OPTION VALUE="1">1</OPTION> 
<OPTION VALUE="2">2</OPTION> 
<OPTION VALUE="3">3</OPTION> 
<OPTION VALUE="4">4</OPTION> 
<OPTION VALUE="5">5</OPTION> 
<OPTION VALUE="6">6</OPTION> 
<OPTION VALUE="7">7</OPTION> 
<OPTION VALUE="8">8</OPTION> 
<OPTION VALUE="9">9</OPTION> 
<OPTION VALUE="10">10</OPTION> 
<OPTION VALUE="15">15</OPTION> 
<OPTION VALUE="20">20</OPTION> 
<OPTION VALUE="30">30</OPTION> 
<OPTION VALUE="45">45</OPTION> 
</select> 

<br /> 

Secondes: <select style="width:50px;"  name="selSeconde" id="selSeconde" onchange="traiterInfo()">  
<OPTION VALUE="0">0</OPTION> 
<OPTION VALUE="15">15</OPTION> 
<OPTION VALUE="30">30</OPTION> 
<OPTION VALUE="45">45</OPTION> 
</select> 

<br /> 


<input type="text" name="reponse" id="reponse" /> 

</body> 
</html>


Echo "Lima Mike Alfa";
0
oliopur Messages postés 11 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 24 mars 2012
24 mars 2012 à 11:16
pas mal !!
Mais entre temps j-ai trouvé un truc qui fonctionne, je stocke en seconde dans ma base de donnée :
"moretime" => ($_POST['moretimeJ']*24*60*60)+($_POST['moretimeH']*24*60)+($_POST['moretimeM']*60)+$_POST['moretimeS'],


puis pour le calcul inverse,

	$jou_restantes = intval(floor(($nouveau_timestamp - $timestamp)/24*60*60));
	$heu_restantes = intval(floor((($nouveau_timestamp - $timestamp)-($jou_restantes*24*60*60))/60/60));
	$min_restantes = intval(floor((($nouveau_timestamp - $timestamp)-(($jou_restantes*24*60*60)-($heu_restantes*60*60))/60)));
	$sec_restantes = date("s", $nouveau_timestamp - $timestamp);

voili voila...
un peu galère, mais je suis venu à bout de tt ca avec l'aide d'excel...
des fois, un tableur et rien de mieux pour tester lol...
Merci à toi
0