センノシド換算表っぽいもの
javascriptで動的に計算できるセンノシド換算表とか作ってみようかな。需要はある…のだろうか?
— NOCHIKA (@pharmacist753) 2018年5月5日
と、呟いてからしばらく飲みながらぼーっとしていましたが、動的フォームの練習も兼ねて作ってみたところ、案外普通にできました。
javascriptはまだまだ勉強中ですが、PHPと違って動的に動かせるのがいいですね。AjaxやjQueryなんかも使えるといいのですが、まだまだ勉強中です。
今回は全てjavascriptで作っていますので、構造自体は簡単です。
htmlのinput type="text"に入力された値を関数としてリアルタイムに登録し、けいしゅけ先生の記事による換算式に当てはめて出力しています。PHPだと、一旦データをサーバーに提出する必要があるので、formを送信しなければいけないのがデメリットでした。
ページのソースから丸見えではあるのですが、簡略化するとこんな感じです。
入力・表示:<input type="text" id="alozenn_in" onchange="calculation"> 錠
計算:var price_al = document.form.alozenn.value * 24;
document.form.alozenn.value = price_al;
出力・表示:<input type="text" name="alozenn_out" size="4" value="0" > mg
ーーー以下同様に数種類...
出力:document.forms.field_total.value = total;
センノシド換算:<input type="text" name="field_total" > mg
今回の発見は、セチロ9錠=センノシド12mgなのですが、これを計算式に当てはめて結果だけ表記しておくと、
data_sechiro = document.form.sechilo.value * 1.333;
にした場合、9錠入力しても「11.997」と表示されるんですね。
しかし、計算結果ではなく計算式を入力しておけば、つまり以下のようにすると
data_sechiro = document.form.sechilo.value * 12/9;
9錠と入力した場合には「12」と、3錠の場合は「4」と表示されるようです。
勉強になりますね。
※コードは例として提示していますので、実際に使われているコードは当該ページより参照してください
計算式自体は、けいしゅけ先生の記事
を参考にさせていただきました。この場をお借り致しまして、お礼申し上げます。