Aggiornamento campo calcolato

  • Creatore Discussione Creatore Discussione pes
  • Data di inizio Data di inizio

pes

Nuovo Utente
12 Mar 2013
10
0
0
Buongiorno a tutti.
Dati i campi:
"partenza" dove l'utente immette ora e minuti (senza la data)
"durata" dove l'utente immette la durata in ora e minuti del viaggio

è possibile creare il campo "arrivo" in cui viene calcolata l'ora di arrivo, sommando alla partenza la durata, senza fare il ricaricamento di tutta la pagina? Tipo: una volta che ho immesso la partenza e la durata il campo arrivo viene compilato in automatico.

E' fantascienza o con uno script di potrebbe fare?
 
Ciao, potresti fare una cosetta di questo tipo:
Bisogna complicarsi un attimo la vita per dirgli di fare il calcolo
ma con qualche forzatura si può. :)
L'output finale sarà l'orario d'arrivo corretto ovvero 13:16.

PHP:
<script>
 
 var partenza=9.55;
 var durata=3.61;
 var durata_viaggio=parseFloat(((partenza)+(durata)).toFixed(2));
 var d=durata_viaggio=String(durata_viaggio);
 var orario_pulito= d.replace(".",":");
 var orario_arrivo="Orario d'arrivo: "+orario_pulito+"";
 alert(orario_arrivo);

</script>
 
Intanto ringrazio per l'interessamento.
Purtroppo non saprei come integrare lo script postato con il codice che ho che è questo

Codice PHP
Codice:
<!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=utf-8" />
<title>Configurazioni di sistema</title>
</head>

<body>

<table width="614" height="295" border="1">
  <tr>
    <th width="118" scope="col">&nbsp;</th>
    <th colspan="2" scope="col">LINEA 1</th>
  </tr>
  <tr>
    <th height="25" scope="row">&nbsp;</th>
    <td><div align="center">Ore</div></td>
    <td><div align="center">Min.</div></td>
  </tr>
  <tr>
    <th height="43" scope="row">Ora partenza</th>
    <td width="75"><div align="center">
          <select name="OraPartenza" id="OraPartenza">
            <?php
		echo "<option selected=\"selected\">";
		echo "</option>";
		$i = 0;
		while ($i <= 23) {
			echo "<option>";
			echo $i;
			echo "</option>";
			$i++;
		}
	    ?>
          </select>    
    </div></td>
    <td width="75"><div align="center">
          <select name="MinPartenza" id="MinPartenza">
            <?php
                echo "<option selected=\"selected\">";
                echo "</option>";
                $i = 0;
                while ($i <= 59) {
                        echo "<option>";
                        echo $i;
                        echo "</option>";
                        $i++;
                }
            ?>
          </select>
    </div></td>
   </tr>
  <tr>

    <th height="48" scope="row">Durata</th>
    <td><div align="center">
          <select name="OreDurata" id="OreDurata">
            <?php
                echo "<option selected=\"selected\">";
                echo "</option>";
                $i = 0;
                while ($i <= 23) {
                        echo "<option>";
                        echo $i;
                        echo "</option>";
                        $i++;
                }
            ?>
          </select>
    </div></td>
    <td><div align="center">
          <select name="MinDurata" id="MinDurata">
            <?php
                echo "<option selected=\"selected\">";
                echo "</option>";
                $i = 0;
                while ($i <= 59) {
                        echo "<option>";
                        echo $i;
                        echo "</option>";
                        $i++;
                }
            ?>
          </select>
    </div></td>
   </tr>
  <tr>
    <th height="48" scope="row">&nbsp;</th>
    <td><form id="form2" name="form2" method="post" action="">
      <label>
        <div align="center">
          <input type="text" name="OraArrivo" id="OraArrivo" />
        </div>
      </label>
    </form></td>
    <td><form id="form1" name="form1" method="post" action="">
      <label>
        <div align="center">
          <input type="text" name="MinArrivo" id="MinArrivo" />
        </div>
      </label>
    </form></td>
  </tr>
  <tr>
  
  </tr>
</table>
</body>

</html>

In pratica ho i campi dove faccio inserire all'utente l'orario di partenza e la durata.
Quello che mi servirebbe è che dopo l'inserimento di questi dati i campi "OraArrivo" e "MinArrivo" venissero compilati in automatico, senza dover aggiornare la pagina.
Se fosse impossibile mi potrei "accontentare" anche di un alert come mi hai suggerito nello script che comunque non riesco ad integrare.
Saresti così gentile da aiutarmi ulteriormente? Grazie ancora in anticipo.
 
Ciao, ecco qua adattato al tuo script.
Ho inserito una sola logica condizionale relativa all'ora
ma puoi arricchirlo con ulteriori logiche.
Ovviamente se vuoi registrare il calcolo nel db dovrai mandare
il calcolo a PHP che ti permetterà di immagazzinare i valori.

PHP:
<script>
     
  function minutiJs(){
	  var ora= document.getElementById("Ora_Partenza");
	  var minuti= document.getElementById("Minuti_Partenza");
	  var ora_durata= document.getElementById("Ora_Durata");
	  var minuti_durata= document.getElementById("Minuti_Durata");
	  var o=parseInt(ora.options[ora.selectedIndex].value);
	  var ods=parseInt(ora_durata.options[ora_durata.selectedIndex].value);
	  var m=parseInt(minuti.options[minuti.selectedIndex].value);
	  var mds=parseInt(minuti_durata.options[minuti_durata.selectedIndex].value);
	  var h=document.form2.OraArrivo.value=o+ods;
	  var m=document.form1.MinArrivo.value=m+mds;
	
	if(h>="24"){
	   h=h-24;
	   var h=document.form2.OraArrivo.value=h;
	 }
  }
 
 </script>

<body>

<table width="614" height="295" border="1">
  <tr>
    <th width="118" scope="col">&nbsp;</th>
    <th colspan="2" scope="col">LINEA 1</th>
  </tr>
  <tr>
    <th height="25" scope="row">&nbsp;</th>
    <td><div align="center">Ore</div></td>
    <td><div align="center">Min.</div></td>
  </tr>
  <tr>
    <th height="43" scope="row">Ora partenza</th>
    <td width="75"><div align="center">
    <select onchange="minutiJs()" id="Ora_Partenza">
     <option value="9">9</option>
     <option value="21">21</option>
     <option value="15">15</option>
   </select>
  </div></td>
  <td width="75"><div align="center">
     <select onchange="minutiJs()" id="Minuti_Partenza">
      <option value="20">20</option>
      <option value="15">15</option>
      <option value="25">25</option>
     </select>
    </div></td>
   </tr>
  <tr>
   <th height="48" scope="row">Durata</th>
     <td><div align="center">
     <select onchange="minutiJs()" id="Ora_Durata">
      <option value="3">3</option>
      <option value="2">2</option>
      <option value="5">5</option>
     </select>
    </div></td>
    <td><div align="center">
     <select onchange="minutiJs()" id="Minuti_Durata">
      <option value="20">20</option>
      <option value="41">41</option>
      <option value="15">15</option>
     </select>
    </div></td>
   </tr>
  <tr>
    <th height="48" scope="row">&nbsp;</th>
    <td><form id="form2" name="form2" method="post" action="">
      <label>
        <div align="center">
          <input type="text" name="OraArrivo" id="OraArrivo">
        </div>
      </label>
    </form></td>
    <td><form id="form1" name="form1" method="post" action="">
      <label>
        <div align="center">
          <input type="text" name="MinArrivo" id="MinArrivo">
        </div>
      </label>
    </form></td>
  </tr>
  <tr>
  
  </tr>
</table>
 

Discussioni simili