Q&A
前提
BMIに関連する体重の計算を行うphpプログラムの間違えている点やアドバイスが欲しいです。
実現したいこと
・getJSON()メソッドで通信する
・サーバ側で計算結果をJSON形式でブラウザに返す
・BMIに関する体重の計算を、サーバ側のphpプログラムで行い、JavascriptでWebブラウザ上で計算して はいけない。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
php
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width,initial-scale=1.0"> 6<title>体重</title> 7<link href="./style.css" rel="stylesheet"> 8<script src="./jquery-3.6.1.min.js"></script> 9<script> 10 $(function(){ 11// jQueryを使用して、計算ボタンがクリックされたら処理を行ないます。 12 $("#calc").on("click",function(){ 13 $.getJSON("bmi.php",{height:$("#height").val()}, 14 function(data){ 15 16 // 行のオブジェクトを生成します。 17 var tr = $("<tr>"); 18 19// 列のオブジェクトを生成して行に追加します。 20 var td_low = $("#bmi-result").html(data.low); 21 tr.append(td_low); 22 23 var td_mid = $("#bmi-result").html(data.mid); 24 tr.append(td_mid); 25 26 var td_hi = $("#bmi-result").html(data.hi); 27 tr.append(td_hi); 28 29// 行のオブジェクトをテーブルに追加します。 30 $("#listbox").append(tr); 31 32 }); 33 }); 34 }); 35</script> 36</head> 37 38<body> 39<div id="bmi-result"> 40<p>身長(m): 41<input type="text" value="" id="height" name="height"> 42<input type="button" value="計算" id="calc"></p> 43<table id="listbox"> 44<tr> 45<th>低体重(kg)</th> 46<th>標準体重(kg)</th> 47<th>肥満(kg)</th> 48</tr> 49</table> 50</form> 51</div> 52</body> 53</html> 54 55 56```2つ目のプログラム 57<?php 58if (! isset($_SERVER['HTTP_X_REQUESTED_WITH']) || 59 $_SERVER['HTTP_X_REQUESTED_WITH'] !== 'XMLHttpRequest') { 60 die(json_encode(array('status' => "Illegal Call 不正な呼び出しです"))); 61} 62 63 64$value = array( 65 1 => array('low'=>height*height*18.5), 66 2 => array('mid'=>height*height*22), 67 3 => array('hi'=>height*height*25.0) 68); 69 70header("Content-Type: application/json; charset=UTF-8"); 71header("X-Content-Type-Options: nosniff"); 72 73echo json_encode( 74 $value, 75 JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP 76); 77 78 79
試したこと
実行して計算ボタンを押しても何も動作が行われない。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/12/22 05:03
2022/12/23 02:18