@kazufex

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【計算結果が表示されません!】

【助けてください!】
計算機が作れません。

WordPressでサイトを作成を始めました。
サイト制作を始めたばかりでHTMLなどの知識は全くない状況です。
「1日に必要な最低エネルギー量」をページ内で計算できるよう、計算機を作りたいと考えています。
チャットGPTで質問しながらコードを作りましたが、計算結果が表示されなくてどうしたら良いのか分からず困っています。
分かる方がいらっしゃいましたら、計算結果が表示されない原因と改善点を教えていただけますと助かります。よろしくお願い致します。

作りたい計算機の情報源(日本医師会)
https://www.med.or.jp/forest/health/eat/01.html
チャットGPTに聞いて作成されたコード

  <label>性別:
    <select id="gender">
      <option value="male">男性</option>
      <option value="female">女性</option>
    </select>
  </label><br>

  <label>年齢層:
    <select id="ageGroup">
      <option value="1-2">1〜2歳</option>
      <option value="3-5">3〜5歳</option>
      <option value="6-7">6〜7歳</option>
      <option value="8-9">8〜9歳</option>
      <option value="10-11">10〜11歳</option>
      <option value="12-14">12〜14歳</option>
      <option value="15-17">15〜17歳</option>
      <option value="18-29">18〜29歳</option>
      <option value="30-49">30〜49歳</option>
      <option value="50-64">50〜64歳</option>
      <option value="65-74">65〜74歳</option>
      <option value="75+">75歳以上</option>
    </select>
  </label><br>

  <label>身体活動レベル:
    <select id="activityLevel">
      <option value="1">レベル1(低い)</option>
      <option value="2">レベル2(普通)</option>
      <option value="3">レベル3(高い)</option>
    </select>
  </label><br><br>

  <button onclick="calculateEnergy()">計算する</button>
  <p id="result"></p>
</div>

<script>
const bmrTable = {
  "1-2": { male: 700, female: 660 },
  "3-5": { male: 900, female: 840 },
  "6-7": { male: 980, female: 920 },
  "8-9": { male: 1140, female: 1050 },
  "10-11": { male: 1330, female: 1260 },
  "12-14": { male: 1520, female: 1410 },
  "15-17": { male: 1610, female: 1310 },
  "18-29": { male: 1490, female: 1130 },
  "30-49": { male: 1570, female: 1170 },
  "50-64": { male: 1510, female: 1120 },
  "65-74": { male: 1390, female: 1090 },
  "75+": { male: 1310, female: 1020 }
};

const activityTable = {
  "1-2": { "2": 1.35 },
  "3-5": { "2": 1.45 },
  "6-7": { "1": 1.35, "2": 1.55, "3": 1.75 },
  "8-9": { "1": 1.40, "2": 1.60, "3": 1.80 },
  "10-11": { "1": 1.45, "2": 1.65, "3": 1.85 },
  "12-14": { "1": 1.50, "2": 1.70, "3": 1.90 },
  "15-17": { "1": 1.55, "2": 1.75, "3": 1.95 },
  "18-29": { "1": 1.50, "2": 1.75, "3": 2.00 },
  "30-49": { "1": 1.50, "2": 1.75, "3": 2.00 },
  "50-64": { "1": 1.50, "2": 1.75, "3": 2.00 },
  "65-74": { "1": 1.50, "2": 1.70, "3": 1.90 },
  "75+": { "1": 1.40, "2": 1.70 }
};

function calculateEnergy() {
  const gender = document.getElementById("gender").value;
  const ageGroup = document.getElementById("ageGroup").value;
  const activityLevel = document.getElementById("activityLevel").value;

  const bmr = bmrTable[ageGroup][gender];
  const activity = activityTable[ageGroup][activityLevel];

  const resultElem = document.getElementById("result");

  if (!activity) {
    resultElem.innerText = "この年齢層では選択された身体活動レベルは利用できません。";
    return;
  }

  const estimatedEnergy = bmr * activity;
  resultElem.innerText = `1日に必要な推定エネルギー量は約 ${estimatedEnergy.toFixed(0)} kcal です。`;
}
</script>
0 likes

3Answer

制限を超えていないはずだとは思うのですが、
回答が途中で見切れてしまう為、
コードブロックを使用しての回答をします。

この表記がコードブロックです。
※思ったより長文になってしまいました。
 
ChatGPTは便利ですが、あくまで前提知識があるうえでの
補助的な存在だと個人的に考えています。といった前提で回答します。
 
この状態は正直言って「丸投げ」なので、
必要最低限ご自身で学習する必要があります。
(何か書籍を読んだり「知識がちょっとでもある」状況になる必要があります)
 
前述を踏まえて申し上げたいことが4点あります。
 
(1)現状のコードについて何が分かっていて、何が分からない状況ですか。
 
(2) 基礎が分かっていないと話が通じない可能性があります。
  ・「35行目でdivタグを閉じているが開始の記述がどこにもない」と
    話して伝わるのか回答者側は分からない。
  ・<script>タグ云々がそもそも伝わるか分からない。

(3) 上記(2)に付随して、現時点のコードについてインデントが整っていません。
  ・端的に伝えると「インデント」は「字下げ」のことです。
    Word等で作成する文書を例にすると
    「ある区切り(章)等で頭が揃っているか」ということになります。
    (「字下げ」はプログラミングにおいて可読性以上に重要な意味を持ちます)
    ※言語によっては「字下げ」自体が処理に影響を及ぼします
 
(4) 今後の展望についてどうなさるつもりでしょうか。
    ここで一時的に回答を得られたとして今後のメンテナンスはどうなさるつもりなのでしょうか。
  ・「こうすれば動くよ」と回答をベタ張りされたとして
  「とりあえず動くようになった」として新たな問題が発生したら
    どうするつもりなのでしょうか。
3Like

Comments

  1. @kazufex

    Questioner

    ご連絡ありがとうございます!
    @syutorum001さんのおっしゃる通りです。丸投げしてしまい申し訳ありません。
    ①コードは正しく配置、改行しなければ壊れてしまう。<>の中に単語+/などで配置しないと指示として区切れない。位しか理解していないです。
    単語の意味はわからないものを調べたりchatGPTで質問して意味を理解するようにしています。
    コードのどこで改行しなければならないのか、正しく動作するために必要な構成について分からないです。
    ②divの開始は1番上の「label:性別の」1番上にありました。貼り付けた時に抜けてしまったと思われます。ごめんなさい。
    scriptタグは現状理解できていません。調べます。
    ③インデントの整え方も調べれば自分で解決できますでしょうか、、、?
    ④メンテナンスの部分は何も考えておりませんでした、、、。教えていただいたことを反映して動くようになれば良いと考えておりました。
    新しい問題が発生したら、また質問を投稿していた可能性はあります、、、。

スクリプトは画像じゃなくて、テキストで貼った方が、適切な回答を得られると思います。
質問部分を再編集で修正してもらうと良いかと思います。

1Like

Comments

  1. @kazufex

    Questioner

    ご連絡ありがとうございます!
    コードをテキストで貼り、修正しました。
    表示がコードではないですが、このままでよろしいのでしょうか、、、?

チャットGPTで質問しながらコードを作りましたが、計算結果が表示されなくてどうしたら良いのか分からず困っています。
分かる方がいらっしゃいましたら、計算機が機能しない原因と改善点を教えていただけますと助かります。よろしくお願い致します。

肝心のコードが提示されていないですよ・・・

1Like

Comments

  1. @kazufex

    Questioner

    ご連絡ありがとうございます!
    ご指摘ありがとうございます。ヘルプで調べて修正してみました。この表示のされ方でよろしいでしょうか?

  2. 提示されたデータをHTMLに保存してブラウザで表示してボタンをクリックすると「この年齢層では選択された身体活動レベルは利用できません。」と表示されましたが、これは正しい挙動ですか?
    スクリーンショット 2025-04-15 234953.png

    「計算機が動きません!」「計算結果が表示されなくて」「計算機が機能しない」と3つの表現をされていますが実際にはどうなっているのでしょうか?ボタンをクリックしても何も起きない、ということでしょうか?それとも誤った計算結果が表示されたのでしょうか?それとも何かしらエラーが発生したのでしょうか?

    問題が発生しているのはWordPress環境のみでしょうか?ローカルでもでしょうか?こちらの環境ではローカルでは動作しているようなのでWordPress側が原因かもしれません。
    スクリーンショット 2025-04-15 235055.png

  3. @kazufex

    Questioner

    正確に意図をお伝えできず申し訳ありません。実際に試していただきありがとうございます。
    もしかして現状のコードでも正しく動作しているのでしょうか、、、?
    ①1枚目の画像について
    はい。その表示で合っていると思います。1〜2歳は身体活動レベルが「2」のみ数値があるので、「1」と「3」を選んだらエラーメッセジが表示されるよう動けば問題ないと考えられます。
    ②3つの表現について
    お伝えしたかったことは、WordPressで作成したサイトに投稿したコードを貼り付けて実際に動くのか試したときに、計算結果が表示されない状況であります。
    ③問題が発生している部分について
    WordPressのみでしか試していないので、ローカルでは行なっておりません。「ローカルで試す」というのは、PCのどこかで正しく動作するか試すことができる場所があるということでしょうか?もしよろしければ、試す方法を教えていただけますと助かります。

Your answer might help someone💌