Come usare il Tag <output>

Ragazzi come da titolo sto cercando di inserire dentro al Value di un input questo codice

<output class='result-dist' ></output> km


perchè questo output tira fuori la distanza di due punti gps e vorrei inserirlo nel database, avevo provato senza usare l'input in questo modo

<output class='result-dist' name='distanza1'></output> km

Ma nulla quando do invio al form non mi registra niente nel campo relativo a "distanza1"

Qualcuno può aiutarmi plzzzzzzz.
Buon Natale

inviato 3 anni fa
naruto1234
X 1 X

Il tag <output> è una novità dell'HTML5 nella gestione dei form. Il suo scopo non è quello di permettere l'inserimento di dati da parte dell'utente bensì di mostrare qualcosa, ad esempio il risultato di una operazione eseguita sui dati inseriti dall'utente.

Per questa ragione, quando si effettua il submit del form, le informazioni mostrate da <output> non vengono inviate al server. Se sono calcolabili sul browser allora sarà possibile ricalcolarle sul server! Ed è questa la strada che bisognerebbe seguire.

Una soluzione alternativa potrebbe essere quella di assegnare il valore del tag output ad un campo input di tipo hidden, subito dopo aver effettuato il calcolo. Ecco un esempio:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Test del tag output</title>
</head>
<body>
  <form method="post" action="" oninput="o.value = parseInt(a.value) + parseInt(b.value); risultato.value = o.value">
   <input type="hidden" name="risultato" value="">
   <input name="a" type="number" step="any"> +
   <input name="b" type="number" step="any"> =
   <output name="o" value="0"></output>
   <br>
   <input name="sub1" type="submit" value="Invia">
  </form>
  <pre>
   <?print_r($_POST);?>
  </pre>
</body>
</html>

Tieni presente che il supporto di HTML5 non è così diffuso tra i browser. Internet Expolrer, pecora nera tra i browser, lo supporta dalla versione 10 e non senza qualche problemuccio...

risposto 3 anni fa
Gianni Tomasicchio
Grazie tante per la risposta, infatti facendo delle prove va tutto bene tranne per una cosa, il mio output funziona grazie al "class=result-dist" e non "name=result-dist", e questo class credo venga ripreso dalla funzione gps qui: // note that in place of the standard use of id to identify input fields, // fields are here identified by form id + field class name function orthoDistCalc() { var lat1 = Geo.parseDMS($('#form_registrazione .lat1').val()); var lon1 = Geo.parseDMS($('#form_registrazione .lon1').val()); var lat2 = Geo.parseDMS($('#form_registrazione .lat2').val());naruto1234 3 anni fa
Grande smanettando un pochino ce l'ho fatta e ti devo ringraziare per la dritta, volevo farti un'altra domanda, qui in questo caso abbiamo fatto l'esempio nel caso l'output utilizzi "name" per indentificarlo, ma nel caso per identificare un output ci sia un id? come dovrei comportarmi? perchè ho fatto delle prove e con "id" il campo dell'input non si popola :S naruto1234 3 anni fa
prova con: document.getElementById('idDelCampoInput').value = o.valueGianni Tomasicchio 3 anni fa
domanda?? perchè mi viene sempre cancellata la risposta dall'amministratore? non mi sembra che ci sia nulla di malenaruto1234 3 anni fa
@naruto1234 perché non si tratta di una risposta al quesito iniziale "Come usare il Tag <output>", così come vuole il regolamento, ma di una nuova domanda.Gianni Tomasicchio 3 anni fa
X 1 X
Effettua l'accesso o registrati per rispondere a questa domanda