2017-10-11 8 views
0

私が取り組んでいるプロジェクトでは、入力した2つの値を計算するバックグラウンドで計算が実行されています。次に、数値の結果を取り出し、HTMLの出力タグに表示します。出力値を提出し、残りのフォームと一緒に投稿することが可能かどうか疑問に思っていましたか?Html出力タグがmysqlに投稿されました

<form action="test.php" method="post" oninput=" totalamount.value = Math.round(adult.value * 10) + Math.round(student.value * 7); changedue.value = Math.round(moneygiven.value - totalamount.value);"> 
    <fieldset> 
     <select name="showtime" required> 
      <option value="" disabled="disabled" selected="selected">Performance</option> 
      <option value='1' type="number" >Show 1 </option> 
      <option value='2' type="number" >Show 2 </option> 
      <option value='3' type="number" >Show 3 </option> 
     </select> 
     <h4>Ammount of Adults</h4> 
     <input name="adult" id="adult" type="number" required> 
     <br /> 
     <h4>Ammount of Students</h4> 
     <input name="student" type="number" required> 
     <br /> 
     <h4>Money Owed</h4> 
     <output name="totalamount" for="adult student"></output> 
     <br /> 
     <h4>Money Given</h4> 
     <input name="moneygiven" type="number" required> 
     <h4>Change due</h4> 
     <output name="changedue" for="totalamount moneygiven"></output> 
     <input type="submit" /> 
    </fieldset> 
</form> 

どうすればよいですか?または、誰かが知っている回避策がありますか?

答えて

1

フォームの一部として値を送信する場合は、<input>タグである必要があります。それを、それは編集できないようにするreadonly="1"属性与えることを検討:別の方法として

<input name="example" value="123" readonly="1">

を、あなたは<output>タグの使用を継続するだけでなく、<input type="hidden">に価値を置いて、その一部作ることができフォームには表示されません。

どちらの方法でも、スクリプトで計算された値ではなく、入力フィールドに独自の値を代入して、意図しない操作を実行できないことを確認してください。出力タグがフォーム要素何ができるか
List of form elements

または代わりではないとして、あなたが隠しフィールドに出力を格納する必要がありますそうするには

+0

これは私のために修正されました。ありがとうございました! –

0

ではなく、計算値を渡すのでは、ページ上でそれを計算することができていますフォームがさらに処理されるので、計算に必要な値だけを渡す必要があります。

0

JavaScriptを使用してその値をHTMLタグに格納できます。これを行う

<form action = "test.php" method ="post" onsubmit="document.getElementById('xyz').value= myval1; document.getElementById('abc').value= myval2;"> <input type = "hidden" name="xyz" id="xyz" value =""> <input type = "hidden" name="abc" id="abc" value ="">

それらの隠されたフィールドの値が自動的に「myval1」と「myval2」の値に従って変更になります。フォーム送信時にこれらの値を計算することもできます。

関連する問題