薬剤師のプログラミング備忘録

変人薬剤師の独り言

センノシド換算表っぽいもの

 

と、呟いてからしばらく飲みながらぼーっとしていましたが、動的フォームの練習も兼ねて作ってみたところ、案外普通にできました。

laxative converter

javascriptはまだまだ勉強中ですが、PHPと違って動的に動かせるのがいいですね。AjaxjQueryなんかも使えるといいのですが、まだまだ勉強中です。

今回は全て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」と表示されるようです。

勉強になりますね。

※コードは例として提示していますので、実際に使われているコードは当該ページより参照してください

 

計算式自体は、けいしゅけ先生の記事

keisyuke-blogyakkyoku.xyz

を参考にさせていただきました。この場をお借り致しまして、お礼申し上げます。

 

f:id:MC753:20180505165657g:plain