teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

現状説明

2021/11/14 21:16

投稿

TrueRyoB
TrueRyoB

スコア79

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,7 @@
3
3
  jQueryを介して画面ロードなしでbottun -> js -> phpでdbからデータ回収 -> jsで計算 を実行しようとしてます。
4
4
  現在jQueryの読み込み関係のエラーに詰まってます
5
5
  実行環境はMAMPです
6
+ 現在はミニマムコードで検証中です
6
7
 
7
8
  > jquery.min.js:2 jQuery.Deferred exception: $(...).on(...).fail is not a function TypeError: $(...).on(...).fail is not a function
8
9
  at HTMLDocument.<anonymous> (https://ryorar.tokyo/for_jquery.js:56:12)

6

コードと問題点の更新

2021/11/14 21:16

投稿

TrueRyoB
TrueRyoB

スコア79

title CHANGED
File without changes
body CHANGED
@@ -1,133 +1,223 @@
1
1
  ### 問題点
2
2
 
3
3
  jQueryを介して画面ロードなしでbottun -> js -> phpでdbからデータ回収 -> jsで計算 を実行しようとしてます。
4
- 現在phpファイルが動かないところで詰まってます
4
+ 現在jQueryの読み込み関係のエラーに詰まってます
5
- 詳しくは下のエラーを見ていただければと思います
6
5
  実行環境はMAMPです
7
6
 
7
+ > jquery.min.js:2 jQuery.Deferred exception: $(...).on(...).fail is not a function TypeError: $(...).on(...).fail is not a function
8
+ at HTMLDocument.<anonymous> (https://ryorar.tokyo/for_jquery.js:56:12)
9
+ at j (https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js:2:29999)
10
+ at k (https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js:2:30313) undefined
11
+ r.Deferred.exceptionHook @ jquery.min.js:2
12
+ jquery.min.js:2 Uncaught TypeError: $(...).on(...).fail is not a function
13
+ at HTMLDocument.<anonymous> (for_jquery.js:56)
14
+ at j (jquery.min.js:2)
15
+ at k (jquery.min.js:2)
16
+
8
17
  ### コード
9
18
 
19
+ DB接続呼びかけ用jsコード(for_jquery.js)
20
+ ```javascript
10
21
 
22
+ $(function(){
23
+ $('#innerHTMLtxt').on("click",function(){//idのボタンが押されたらこれが発動するらしい...onclickの進化系!
24
+ const atkId = new Option(document.getElementById("atkName").value);
25
+ const difId = new Option(document.getElementById("difName").value);
11
26
 
12
- DB接続用コード(試験的)
27
+ $.post({
28
+ url: 'find_value.php',//新しいphpファイルの名前にするよ
29
+ data:{'opt': 'connect_database','atkId':atkId, 'difId':difId},//わいの愛しのidちゃんたちを書いていく!!
30
+ dataType: 'json', //必須。json形式で返すように設定(テンションの差よ)(マジレスマン)(いいね正解大卒)
31
+ }).done(function(atkArray,difArray,weaponArray){
32
+ var atkAH= atkArray[0];
33
+ var atkAA= atkArray[1];
34
+ var atkAM= atkArray[2];
35
+ var atkAD= atkArray[3];
36
+ var atkAS= atkArray[4];
37
+ var atkBH= atkArray[5];
38
+ var atkBA= atkArray[6];
39
+ var atkBM= atkArray[7];
40
+ var atkBD= atkArray[8];
41
+ var atkBS= atkArray[9];
42
+ var atkSkill= atkArray[10];
43
+ var atkName= atkArray[11];
44
+ var atkVisu= atkArray[12];
45
+ var weapona_name= atkArray[13];
46
+ var weaponm_name= atkArray[14];
47
+ var spe_type= atkArray[15];
48
+ var spe_damage= atkArray[16];
49
+ var spe_num= atkArray[17];
50
+ var spe_name= atkArray[18];
51
+
52
+ var difAH= difArray[0];
53
+ var difAA= difArray[1];
54
+ var difAM= difArray[2];
55
+ var difAD= difArray[3];
56
+ var difAS= difArray[4];
57
+ var difBH= difArray[5];
58
+ var difBA= difArray[6];
59
+ var difBM= difArray[7];
60
+ var difBD= difArray[8];
61
+ var difBS= difArray[9];
62
+ var difSkill= difArray[10];
63
+ var difVisu= difArray[11];
64
+ var difName= difArray[12];
65
+
66
+ var weapona_dam= weaponArray[0];
67
+ var weapona_num= weaponArray[1];
68
+ var weaponm_dam= weaponArray[2];
69
+ var weaponm_attribute= weaponArray[3];
70
+ var weaponm_heal= weaponArray[4];
71
+
72
+ getValue(atkAH,atkAA,atkAM,atkAD,atkAS,atkBH,atkBA,atkBM,atkBD,atkBS,atkSkill,atkName,atkVisu,weapona_name,weaponm_name,spe_type,spe_damage,spe_num,spe_name,difAH,difAA,difAM,difAD,difAS,difBH,difBA,difBM,difBD,difBS,difSkill,difVisu,difName,weapona_dam,weapona_num,weapona_dam,weaponm_dam,weaponm_attribute,weaponm_heal);
73
+ //getValue関数に、入手したデータを送ります!
74
+ })
75
+ }).fail(function(XMLHttpRequest, textStatus, error){
76
+ alert(error);
77
+
78
+ })
79
+
80
+ })
81
+
82
+ ```
83
+ DB接続用コード(find_value.php)
13
84
  ```php
14
85
  <?php
15
- //ファイル名はfunction.phpです
16
- function get_txt_content($atk_name){//DB接続用関数です
17
86
 
87
+ $atkArray = array();//変数宣言 
88
+ $difArray = array();
89
+ $weaponArray = array();
90
+ $atkId = filter_input(INPUT_POST,"atkId"); //変数の出力
91
+ $difId = filter_input(INPUT_POST,"difId");
92
+
93
+
94
+ if( isset($atkId))//わんちゃんissetで変数を受け取った後関数を実行的なのができるかも
95
+ {
18
96
  try {
19
97
 
20
- // データベースに接続
98
+ // データベースに接続
21
- $pdo = new PDO(
99
+ $pdo = new PDO(
22
- 'mysql:dbname=ryorar;host=127.0.0.1;charset=utf8mb4',
100
+ 'mysql:dbname=ryorar;host=127.0.0.1;charset=utf8mb4',
23
- 'viewers',
101
+ 'viewers',
24
- 'Mypass1!',
102
+ 'Mypass1!',
25
- [
103
+ [
26
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
104
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
27
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
105
+ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
28
- ]
106
+ ]
29
- );
107
+ );//今から、それぞれのカラム名つき、int指定込みで配列にデータを入れるコマンドを探す!締めはechoとexit!
30
108
 
31
- $stmt =$pdo->prepare('SELECT * FROM yokai_data WHERE id = :id');
32
- $stmt->bindValue(':id', $atk_name);
33
- $stmt->execute();
34
- foreach($stmt as $row)
35
- {
36
- $atkSkill = $row['skill_name'];
37
- }
38
-
39
- $atkSkill_json = json_encode( $atkSkill );
109
+ //ここでは、アタッカーのyokai_dataDBから手に入る変数を入れる 1をpost atkIdに変える
110
+ $stmt =$pdo->prepare('SELECT * FROM yokai_data WHERE id = :id');
111
+ $stmt->bindValue(':id', $atkId);
112
+ $stmt->execute();
113
+ foreach($stmt as $row)
114
+ {
115
+ $atkStatus_a_h = (int)$row['status_a_h'];//dif
116
+ $atkStatus_a_a = (int)$row['status_a_a'];
117
+ $atkStatus_a_m = (int)$row['status_a_m'];
118
+ $atkStatus_a_d = (int)$row['status_a_d'];
119
+ $atkStatus_a_s = (int)$row['status_a_s'];
120
+ $atkStatus_b_h = (int)$row['status_b_h'];
121
+ $atkStatus_b_a = (int)$row['status_b_a'];
122
+ $atkStatus_b_m = (int)$row['status_b_m'];
123
+ $atkStatus_b_d = (int)$row['status_b_d'];
124
+ $atkStatus_b_s = (int)$row['status_b_s'];
125
+ $atkSkill = $row['skill_name'];//dif
126
+ $weapon_a = $row['weapon_a'];//none
127
+ $weapon_m = $row['weapon_m'];//none
128
+ $atkName = $row['yokai_name'];//dif
129
+ $atkVisu = $row['visu'];//dif
130
+ $spe_type = $row['spe_type'];//none
131
+ $spe_damage = $row['spe_damage'];
132
+ $spe_num = $row['spe_num'];
133
+ $spe_name = $row['spe_name'];
134
+ }
135
+ //データ読み込みを一部省略
136
+
137
+ $atkArray =array($atkStatus_a_h,$atkStatus_a_a,$atkStatus_a_m,$atkStatus_a_d,$atkStatus_a_s,$atkStatus_b_h,$atkStatus_b_a,$atkStatus_b_m,$atkStatus_b_d,$atkStatus_b_s,$atkSkill,$atkName,$atkVisu,$weapon_a,$weapon_m,$spe_type,$spe_damage,$spe_num,$spe_name);
40
138
 
41
- return $atkSkill_json;//これでjsにデータ返却を試みます
139
+ $weaponArray =array($weapon_a_dam,$weapon_a_num,$weapon_m_dam,$weapon_m_attribute,$weapon_m_heal);
140
+
42
-
141
+ $difArray =array($difStatus_a_h,$difStatus_a_a,$difStatus_a_m,$difStatus_a_d,$difStatus_a_s,$difStatus_b_h,$difStatus_b_a,$difStatus_b_m,$difStatus_b_d,$difStatus_b_s,$difSkill,$difVisu,$difName);
142
+
43
- $pdo =null;
143
+ $pdo =null;
44
144
 
45
- } catch (PDOException $e) {
145
+ } catch (PDOException $e) {
46
146
  header('Content-Type: text/plain; charset=UTF-8', true, 500);
47
147
  exit($e->getMessage());
48
148
 
49
- } catch (PDOException $e) {
149
+ }
50
150
 
51
- // エラーが発生した場合は「500 Internal Server Error」でテキストとして表示して終了する
52
- // - もし手抜きしたくない場合は普通にHTMLの表示を継続する
53
- // - ここではエラー内容を表示しているが, 実際の商用環境ではログファイルに記録して, Webブラウザには出さないほうが望ましい
54
- header('Content-Type: text/plain; charset=UTF-8', true, 500);
55
- exit($e->getMessage());
56
-
57
- }
58
-
59
151
  }
60
152
 
61
- $func = $_POST['func'];//jsから送られたデータで関数を実行させようとしてるところです
62
- $atkId = $_POST['argument'];
63
- echo $func($atkId);//前回echoコマンド表記忘れていたので変な感じなりまたが、送られたデータで関数実行というのは恐らくこのことだと思います
153
+ echo json_encode($atkArray,$difArray,$weaponArray); //for_jquery.jsファイルします
154
+ exit; //処理の終了
64
155
 
65
156
  ?>
66
157
  ```
67
158
 
68
- こちらのjsもjQueryなどの接続を確かめるものです 
159
+ 計算コード(real.js)
69
160
  ```javascript
70
- const atkId = '1';
71
- const element = document.getElementById('txt_field');
72
161
 
73
- $.ajax({
74
- type:'post',
75
- url:'http://localhost:8888/function.php',//mampで実行してるのでlocalが88888です
76
- data:{'func':'get_txt_content','argument':atkId},
77
- dataType:'json',
78
- })
79
- .done(function(response) {
80
- element.innerHTML = "<p>"+response+"</p>";//接続成功した時に、returnで返却された変数をhtmlに入力するという打算です
81
- //下のメモに詳しく書いてます
162
+ function getValue(atkAH,atkAA,atkAM,atkAD,atkAS,atkBH,atkBA,atkBM,atkBD,atkBS,atkSkill,atkName,atkVisu,weapona_name,weaponm_name,spe_type,spe_damage,spe_num,spe_name,difAH,difAA,difAM,difAD,difAS,difBH,difBA,difBM,difBD,difBS,difSkill,difVisu,difName,weapona_dam,weapona_num,weapona_dam,weaponm_dam,weaponm_attribute,weaponm_heal)
163
+ {//引数はそのまま使ってます
164
+ let atkId = new Option(document.getElementById("atkName").value);
165
+ let atkType = new Option(document.getElementById("atkType").value);
166
+ let atkArm = new Option(document.getElementById("atkArm").value);
167
+ let atkLevel = new Option(document.getElementById("atkLevel").value);
168
+ //少し省略
169
+ var realAtkStatusH = atkAH + 0.010204 * (atkLevel-1) * (atkHpchange + atkBH - atkAH);
82
170
 
171
+ //めちゃ省略してます
172
+ else
173
+ {//火力がインフレしてる時
174
+ howmanyTokill = Math.floor(howmanyTokill/100);
175
+ innerHTMLtxt.innerHTML ="期待値は"+resultNum+"なので、"+atkName+"の"+spe_name+"Gで"+difName+"が"+howmanyTokill+"体吹き飛びます! 命中率は"+(500-missingCount)/(500*spe_num)*100+"です!";
83
- })
176
+ }
84
- .fail(function(xhr) {
85
- alert("失敗!");
86
- })
177
+ }
87
- .always(function(xhr, msg) {
88
- });
89
-
90
178
  ```
91
- <メモ>
92
- しかし、開発画面の方では
93
- > Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
94
179
 
95
- と表示されちゃいました...responseがダメみたいです phpファイルにデータを送れたのはいいものの、responseがないからこうなってるのではと考察してます
96
180
 
97
- 下のhtmlも試験的なものに更新しました。jQueryは古いバジョンのものをネットから読み込む形にしたら上手く接続できました
181
+ htmlド(index.php)
98
-
99
182
  ```html
183
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
100
- <!DOCTYPE html>
184
+ <html>
101
- <html lang="jp">
102
185
  <head>
186
+ <link rel="shortcut icon" href="icon.ico">
187
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
188
+ <meta http-equiv="Content-Style-Type" content="text/css">
189
+ <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,user-scalable=no">
190
+ <link rel="stylesheet" href="stylesheet.css">
191
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
192
+ <script type="text/javascript" src="real.js"></script><!--上に、先にjQuery読み込んでます!-->
193
+ <script type="text/javascript" src="for_jquery.js"></script>
103
- <title>サンプルページ</title>
194
+ <title>妖怪ウォッチ2ダメージ計算</title>
195
+ </head>
104
196
 
105
- <meta charset="utf-8">
106
- <meta name="description" content="">
107
- <meta name="author" content="">
108
- <meta name="keywords" content="">
109
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
110
-
111
- </head>
112
197
  <body>
113
- <!-- ここかHTMLでマークアップする -->
198
+ <!--しばく省略-->
199
+ <label for ="attackerSelect">妖怪の名前:</label>
200
+ <select id="atkName" name="attackerSelect">
201
+ <option value="1">妖怪の種類を選択</option>
202
+ <option value="1">ぶようじん坊</option>
203
+ <option value="2">がらあきん坊</option>
204
+ <option value="3">さきがけの助</option>
205
+ <option value="4">ダラケ刀</option>
206
+ <option value="5">ザンバラ刀</option>
207
+ </select><!--ここのデータを、for_jquery.jsファイルが拾ってます!difNameも同様です-->
208
+ <!--しばらく省略-->
114
209
 
115
- <!-- JQeryを読み込む -->
210
+ <div class="main-downdown">
211
+ <label for="label1">計算する</label>
116
- <!--<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>-->
212
+ <input type="button" id="label1" onclick="changeframe_blue();" ><!--ここのボタンでfor_jqueryファイルを起動させます!-->
213
+ </div>
117
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
214
+ <div class="resultA" id="innerHTMLtxt"></div><!--ここに、getValueでの計算結果が映し出されます-->
118
215
 
119
- <!-- 自分で作成したJavaScriptを読み込む -->
120
- <script src="challenge.js"></script>
121
-
122
- <div id="txt_field"></div>//ここを更新する策略です
123
- </body>
124
- </html>
125
216
  ```
126
217
 
127
- ### 画像
128
218
 
129
- index.php(htmlファイル)を実行した様子
219
+ ### エラー画像
130
- ![イメージ説明](2eed5b154bce8ee1ac3b83ca9b9d898b.png)
131
220
 
221
+ どうやら、ajaxの一部のコード(fail文当たり)とjQueryにエラーが発生してるようです ボタンを押しても何も発生してません。
132
- function.phpが使様子
222
+ このコードを更新し終わって、mtsさんの教ただいたことを理解した後にコードを細分化して再度検証してきます。
133
- ![イメジ説明](1b022955abdef58a71029ca0adcd76a7.png)
223
+ ![スクリンショット](41ea56a84079c72fcb819bfbb228db6f.png)

5

コードや問題点の更新

2021/11/13 23:36

投稿

TrueRyoB
TrueRyoB

スコア79

title CHANGED
File without changes
body CHANGED
@@ -1,23 +1,22 @@
1
1
  ### 問題点
2
2
 
3
3
  jQueryを介して画面ロードなしでbottun -> js -> phpでdbからデータ回収 -> jsで計算 を実行しようとしてます。
4
- 現在jQueryの実装段階で詰まっています
4
+ 現在phpファイルが動かないところで詰まっています
5
5
  詳しくは下のエラーを見ていただければと思います
6
+ 実行環境はMAMPです
6
7
 
7
8
  ### コード
8
9
 
9
10
 
10
11
 
11
- DB接続用コード
12
+ DB接続用コード(試験的)
12
13
  ```php
13
14
  <?php
15
+ //ファイル名はfunction.phpです
16
+ function get_txt_content($atk_name){//DB接続用関数です
14
17
 
15
- function connect_with_data($atkId, $difId) 
16
- {//jsの命令で発動させる関数です 引数はjsから持ってきてます
17
18
  try {
18
19
 
19
- /* リクエストから得たスーパーグローバル変数をチェックするなどの処理 */
20
-
21
20
  // データベースに接続
22
21
  $pdo = new PDO(
23
22
  'mysql:dbname=ryorar;host=127.0.0.1;charset=utf8mb4',
@@ -28,229 +27,107 @@
28
27
  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
29
28
  ]
30
29
  );
31
-
32
-
30
+
33
31
  $stmt =$pdo->prepare('SELECT * FROM yokai_data WHERE id = :id');
34
- $stmt->bindValue(':id', $atkId);
32
+ $stmt->bindValue(':id', $atk_name);
35
33
  $stmt->execute();
36
34
  foreach($stmt as $row)
37
35
  {
38
- $atkStatus_a_h = (int)$row['status_a_h'];//dif
39
- $atkStatus_a_a = (int)$row['status_a_a'];
40
- $atkStatus_a_m = (int)$row['Status_a_m'];
41
- $atkStatus_a_d = (int)$row['status_a_d'];
42
- $atkStatus_a_s = (int)$row['status_a_s'];
43
- $atkStatus_b_h = (int)$row['status_d_h'];
44
- $atkStatus_b_a = (int)$row['status_b_a'];
45
- $atkStatus_b_m = (int)$row['status_b_m'];
46
- $atkStatus_b_d = (int)$row['status_b_d'];
47
- $atkStatus_b_s = (int)$row['status_b_s'];
48
- $atkSkill = $row['skill_name'];//dif
49
- $weapon_a = $row['weapon_a'];//none
50
- $weapon_m = $row['weapon_m'];//none
51
- $atkName = $row['yokai_name'];//dif
52
- $atkVisu = $row['visu'];//dif
53
- $spe_type = $row['spe_type'];//none
54
- $spe_damage = $row['spe_damage'];
55
- $spe_num = $row['spe_num'];
56
- $spe_name = $row['spe_name'];
36
+ $atkSkill = $row['skill_name'];
57
37
  }
58
-
59
- $stmt =$pdo->prepare('SELECT * FROM weapon WHERE weapon_name = :wea');//ここは、weaponaゾーン difは必要ないのだ
38
+
60
- $stmt->bindValue(':wea', $weapon_a);
61
- $stmt->execute();
62
- foreach($stmt as $row)
63
- {
64
- $weapon_a_dam = (int)$row['damage'];
65
- $weapon_a_num = (int)$row['num'];
66
- }
67
- $stmt =$pdo->prepare('SELECT * FROM weapon WHERE weapon_name = :wea');
68
- $stmt->bindValue(':wea', $weapon_m);
69
- $stmt->execute();
70
- foreach($stmt as $row)
71
- {
72
- $weapon_m_dam = (int)$row['damage'];
73
- $weapon_m_attribute = (int)$row['weapon'];
74
- $weapon_m_heal = (int)$row['heal'];
75
- }
76
-
77
- //今からひたすらにjsonに書き換える
78
- $spe_type_json = json_encode( $spe_type );
79
- $spe_damage_json = json_encode( $spe_damage );
80
- $spe_num_json = json_encode( $spe_num );
81
- $atkAH_json = json_encode( $atkStatus_a_h );
82
- $atkAA_json = json_encode( $atkStatus_a_a );
83
- $atkAM_json = json_encode( $atkStatus_a_m );
84
- $atkAD_json = json_encode( $atkStatus_a_d );
85
- $atkAS_json = json_encode( $atkStatus_a_s );
86
- $atkBH_json = json_encode( $atkStatus_b_h );
87
- $atkBA_json = json_encode( $atkStatus_b_a );
88
- $atkBM_json = json_encode( $atkStatus_b_m );
89
- $atkBD_json = json_encode( $atkStatus_b_d );
90
- $atkBS_json = json_encode( $atkStatus_b_s );
91
- $difAH_json = json_encode( $difStatus_a_h );
92
- $difAA_json = json_encode( $difStatus_a_a );
93
- $difAM_json = json_encode( $difStatus_a_m );
94
- $difAD_json = json_encode( $difStatus_a_d );
95
- $difAS_json = json_encode( $difStatus_a_s );
96
- $difBH_json = json_encode( $difStatus_b_h );
97
- $difBA_json = json_encode( $difStatus_b_a );
98
- $difBM_json = json_encode( $difStatus_b_m );
99
- $difBD_json = json_encode( $difStatus_b_d );
100
- $difBS_json = json_encode( $difStatus_b_s );
101
- $weapon_a_dam_json = json_encode( $weapon_a_dam);
102
- $weapon_a_num_json = json_encode( $weapon_a_num);
103
- $weapon_m_dam_json = json_encode( $weapon_m_dam);
104
- $weapon_m_attribute_json = json_encode( $weapon_m_attribute);
105
- $weapon_m_heal_json = json_encode( $weapon_m_heal);
106
- $atkSkill_json = json_encode( $atkSkill );
39
+ $atkSkill_json = json_encode( $atkSkill );
40
+
107
- $difSkill_json = json_encode( $difSkill );
41
+ return $atkSkill_json;//これでjsにデータ返却を試みます
108
- $weaponaName_json = json_encode( $weapon_a );
109
- $weaponmName_json = json_encode( $weapon_m );
110
42
 
111
- $pdo =null;
43
+ $pdo =null;
112
44
 
113
45
  } catch (PDOException $e) {
114
-
115
46
  header('Content-Type: text/plain; charset=UTF-8', true, 500);
116
47
  exit($e->getMessage());
117
48
 
49
+ } catch (PDOException $e) {
50
+
51
+ // エラーが発生した場合は「500 Internal Server Error」でテキストとして表示して終了する
52
+ // - もし手抜きしたくない場合は普通にHTMLの表示を継続する
53
+ // - ここではエラー内容を表示しているが, 実際の商用環境ではログファイルに記録して, Webブラウザには出さないほうが望ましい
54
+ header('Content-Type: text/plain; charset=UTF-8', true, 500);
55
+ exit($e->getMessage());
56
+
118
57
  }
119
- header('Content-Type: text/html; charset=utf-8');
58
+
120
59
  }
121
- //ここなんですがまだ把握し切ってなかったので変更してないです 取り敢えずjsの処理が済んだらこっちに手つけます
122
60
 
61
+ $func = $_POST['func'];//jsから送られたデータで関数を実行させようとしてるところです
62
+ $atkId = $_POST['argument'];
63
+ echo $func($atkId);//前回echoコマンドの表記を忘れていたので変な感じになりましたが、送られたデータで関数実行というのは恐らくこのことだと思います
64
+
123
65
  ?>
124
66
  ```
125
67
 
68
+ こちらのjsもjQueryなどの接続を確かめるものです 
126
69
  ```javascript
70
+ const atkId = '1';
71
+ const element = document.getElementById('txt_field');
127
72
 
73
+ $.ajax({
128
- function changeframe_blue() {
74
+ type:'post',
75
+ url:'http://localhost:8888/function.php',//mampで実行してるのでlocalが88888です
129
- document.getElementById('innerHTMLtxt').style.borderColor = '#01eeff';
76
+ data:{'func':'get_txt_content','argument':atkId},
130
-
77
+ dataType:'json',
131
- }
78
+ })
79
+ .done(function(response) {
80
+ element.innerHTML = "<p>"+response+"</p>";//接続成功した時に、returnで返却された変数をhtmlに入力するという打算です
81
+ //下のメモに詳しく書いてます
132
82
 
133
- //新しく関数connect_dataを作りました jQueryを呼びます
134
- function connect_data(){
135
-
136
- let atkId = new Option(document.getElementById("atkName").value);
137
- let difId = new Option(document.getElementById("difName").value);
138
-
139
- $.ajax({
140
- url: 'find_value.php', //アクセスするURL
141
- type: 'post',//全角消しました!
142
- cache: false, //cacheを使うか使わないかを設定
143
- dataType:'json', //data type script・xmlDocument・jsonなど
144
- data:{'func' : 'connect_with_data', 'atkId': atkId, 'difId': difId }, //アクセスするときに必要なデータを記載
145
- })
83
+ })
146
- .done(function(response) { //正常に処理が完了した時
84
+ .fail(function(xhr) {
147
- getValue();//成功した時に、計算用関数(下にあるやつ)を実行するようにします!
85
+ alert("失敗!");
148
-
149
- })
86
+ })
150
- .fail(function(xhr) {
151
- //ここは多分書いた方がいいけどまだ手をつけてません...次回見直すときここも修正します
152
- })
153
- .always(function(xhr, msg) {
87
+ .always(function(xhr, msg) {
154
-
155
88
  });
89
+
90
+ ```
91
+ <メモ>
92
+ しかし、開発画面の方では
93
+ > Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
156
94
 
157
- }
95
+ と表示されちゃいました...responseがダメみたいです phpファイルにデータを送れたのはいいものの、responseがないからこうなってるのではと考察してます
158
96
 
97
+ 下のhtmlも試験的なものに更新しました。jQueryは古いバージョンのものをネットから読み込む形にしたら上手く接続できました
159
98
 
99
+ ```html
160
- function getValue() {
100
+ <!DOCTYPE html>
161
- let atkId = new Option(document.getElementById("atkName").value);//フォームから値を読み込んでます
162
- let atkType = new Option(document.getElementById("atkType").value);
163
- let atkArm = new Option(document.getElementById("atkArm").value);
101
+ <html lang="jp">
164
- //省略
102
+ <head>
165
- var atkName = JSON.parse('<?php echo $atkName_json; ?>');//phpで入手したデータを取り込んでます
166
- var difName = JSON.parse('<?php echo $difName_json; ?>');
167
- var spe_name = JSON.parse('<?php echo $spe_name_json; ?>');
168
-
169
-
170
- //省略
171
- if(1==1)//この式も省略してます
103
+ <title>サンプルページ</title>
172
- {
173
104
 
174
- }else//計算してます
105
+ <meta charset="utf-8">
106
+ <meta name="description" content="">
175
- {
107
+ <meta name="author" content="">
108
+ <meta name="keywords" content="">
176
- innerHTMLtxt.innerHTML ="期待値は"+resultNum+"";//htmlの結果表示欄はデフォルトでは空白にしてあります。ここを埋めることで更新しようと考えてます!
109
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
177
- }
178
- }
179
-
180
-
181
- ```
182
110
 
183
- ```html
184
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
185
- <html>
186
- <head>
187
- <script src="jQuery-3.6.0.min.js"></script>
188
- <script type="text/javascript" src="real.js"></script>//順列を変更いたしました!
189
111
  </head>
190
-
191
112
  <body>
192
- <div class="top">
113
+ <!-- ここからHTMLでマークアップする -->
193
- <h2 class="icon-sentence">妖怪ウォッチ2ダメージ計算</h2>
194
- <img class="topicon" src="iconimg.jpeg" width="150px";>
195
- </div>
196
114
 
197
- <div class= "main">
115
+ <!-- JQeryを読み込む -->
116
+ <!--<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>-->
117
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
118
+
198
- <div class= "main-upper">
119
+ <!-- 自分で作成したJavaScriptを読み込む -->
199
- <div class= "attack-input">
200
- <p class=ababab>アタッカーの設定</p>
201
- <p>
202
- <form action="index.php" method="post">
203
- <label for ="attackerSelect">妖怪の名前:</label>
120
+ <script src="challenge.js"></script>
204
- <select id="atkName" name="attackerSelect">
121
+
205
- <option value="1">妖怪の種類を選択</option>
122
+ <div id="txt_field"></div>//ここを更新する策略です
206
- <option value="1">ぶようじん坊</option>
207
- <option value="2">がらあきん坊</option>
208
- <option value="3">さきがけの助</option>
209
- <option value="4">ダラケ刀</option>
210
- <option value="5">ザンバラ刀</option>
211
- </select>
212
- </form>
123
+ </body>
213
- </p>
214
- <p>
215
- <label for ="feelSelect">検証する技:</label>
216
- <select id="atkType" name="feelSelect">
217
- <option value="1">物理技の火力</option>
218
- <option value="2">妖術技の火力</option>
219
- </select>
220
- </p>
221
- <p>
222
- <label for ="armSelect">装備:</label>
223
- <select id="atkArm" name="armSelect">
224
- <option value="a_densetsu">伝説の腕輪</option>
225
- <option value="">その他</option>
226
- </select>
227
- </p>
228
- </div>
124
+ </html>
229
- <div class="main-downdown">
230
- <label for="label1">計算する</label><!--ここがボタンです!jsファイルに繋がってます!-->
231
- <input type="button" id="label1" onclick="changeframe_blue(); connect_data();" >
232
- </div>
233
- </div>
234
- <div class="resultA" id="innerHTMLtxt"></div>
235
125
  ```
236
126
 
237
127
  ### 画像
238
128
 
239
- なぜか画像貼れないです...
240
- なのでエラ〜メッセージコピペまし
129
+ index.php(htmlファイル)実行したときの様子
130
+ ![イメージ説明](2eed5b154bce8ee1ac3b83ca9b9d898b.png)
241
131
 
132
+ function.phpが使えない様子
242
- > Uncaught TypeError: Illegal invocation
133
+ ![イメージ説明](1b022955abdef58a71029ca0adcd76a7.png)
243
- at i (jQuery-3.6.0.min.js:2)
244
- at At (jQuery-3.6.0.min.js:2)
245
- at At (jQuery-3.6.0.min.js:2)
246
- at At (jQuery-3.6.0.min.js:2)
247
- at Function.S.param (jQuery-3.6.0.min.js:2)
248
- at Function.ajax (jQuery-3.6.0.min.js:2)
249
- at connect_data (real.js:14)
250
- at HTMLInputElement.onclick ((インデックス):561)
251
-
252
- connect_dataは$.ajaxの行を指してます
253
- HTMLはボタンの行です
254
- jQueryはほとんどが2行目にあるので特定不可です...
255
-
256
- よろしくお願いします

4

コードの更新

2021/11/13 11:51

投稿

TrueRyoB
TrueRyoB

スコア79

title CHANGED
File without changes
body CHANGED
@@ -138,7 +138,7 @@
138
138
 
139
139
  $.ajax({
140
140
  url: 'find_value.php', //アクセスするURL
141
- type: 'post',   //post or get
141
+ type: 'post',//全角消しました!
142
142
  cache: false, //cacheを使うか使わないかを設定
143
143
  dataType:'json', //data type script・xmlDocument・jsonなど
144
144
  data:{'func' : 'connect_with_data', 'atkId': atkId, 'difId': difId }, //アクセスするときに必要なデータを記載
@@ -184,8 +184,8 @@
184
184
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
185
185
  <html>
186
186
  <head>
187
+ <script src="jQuery-3.6.0.min.js"></script>
187
- <script type="text/javascript" src="real.js"></script>
188
+ <script type="text/javascript" src="real.js"></script>//順列を変更いたしました!
188
- <script src="jQuery-3.6.0.min.js"></script><!--ここでjQueryを読み込んでますが、エラーが起きてしまってます(´・_・`) バージョンはあってますよ!-->
189
189
  </head>
190
190
 
191
191
  <body>

3

コードの更新

2021/11/12 21:31

投稿

TrueRyoB
TrueRyoB

スコア79

title CHANGED
File without changes
body CHANGED
@@ -1,49 +1,126 @@
1
1
  ### 問題点
2
2
 
3
- 私が今作っているのは、「埋められたフォーム」(html)に応じて「DBから持ってきたデータ」(php)を「javascriptに渡して計算させる」(javascript)プログラムです。
4
- ボタンを押すのをトリガーにしたくて、以下のコードを作ったのですが、上手く行きません。何がいけないのでしょうか?ご教授お願い致しますm(_ _)m
5
- **buttonクリック->php起動->データ入手->javascript起動**の流れを作るつもります。
3
+ jQueryを介して画面ロードなしでbottun -> js -> phpでdbからデータ回収 -> js計算 を実行しようとしてます。
4
+ 現在jQueryの実装段階で詰まっています
5
+ 詳しくは下のエラーを見ていただければと思います
6
6
 
7
- **ボタンを押してもphpに指示が向かってない**ようです。
7
+ ### コード
8
- htmlファイルもphpにしたため、今はひとつのファイルの中に2つの言語が入ってる状態になってます
9
- javascriptはonclick属性で起動させるのが一番なのですが、**phpで入手したデータを使わないといけない**のでphpの最後の方で起動させてます。
10
- ちなみに、changeframe_blue関数はちゃんと起動します
11
8
 
9
+
10
+
12
- ### コード
11
+ DB接続用コード
13
12
  ```php
14
13
  <?php
15
14
 
16
- if(isset($_POST["s"]))//おそらくここが間違っているのだと思われます
15
+ function connect_with_data($atkId, $difId) 
17
- {
18
- echo '<script language=javascript>alert("ダイアログ表示")</script>';
19
- //上はちゃんと接続か試してるものです 反応しせんでしたが...
16
+ {//jsの命令発動させ関数です 引数はjsから持ってきて
20
- echo '<script>getValue();</script>';
21
- //上のこれが本命です
22
-
23
17
  try {
24
18
 
25
- //省略
19
+ /* リクエストから得たスーパーグローバル変数をチェックするなどの処理 */
26
20
 
21
+ // データベースに接続
22
+ $pdo = new PDO(
23
+ 'mysql:dbname=ryorar;host=127.0.0.1;charset=utf8mb4',
24
+ 'viewers',
25
+ 'Mypass1!',
26
+ [
27
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
28
+ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
29
+ ]
30
+ );
31
+
32
+
33
+ $stmt =$pdo->prepare('SELECT * FROM yokai_data WHERE id = :id');
34
+ $stmt->bindValue(':id', $atkId);
35
+ $stmt->execute();
36
+ foreach($stmt as $row)
37
+ {
38
+ $atkStatus_a_h = (int)$row['status_a_h'];//dif
39
+ $atkStatus_a_a = (int)$row['status_a_a'];
40
+ $atkStatus_a_m = (int)$row['Status_a_m'];
41
+ $atkStatus_a_d = (int)$row['status_a_d'];
42
+ $atkStatus_a_s = (int)$row['status_a_s'];
43
+ $atkStatus_b_h = (int)$row['status_d_h'];
44
+ $atkStatus_b_a = (int)$row['status_b_a'];
45
+ $atkStatus_b_m = (int)$row['status_b_m'];
46
+ $atkStatus_b_d = (int)$row['status_b_d'];
47
+ $atkStatus_b_s = (int)$row['status_b_s'];
48
+ $atkSkill = $row['skill_name'];//dif
49
+ $weapon_a = $row['weapon_a'];//none
50
+ $weapon_m = $row['weapon_m'];//none
51
+ $atkName = $row['yokai_name'];//dif
52
+ $atkVisu = $row['visu'];//dif
53
+ $spe_type = $row['spe_type'];//none
54
+ $spe_damage = $row['spe_damage'];
55
+ $spe_num = $row['spe_num'];
56
+ $spe_name = $row['spe_name'];
57
+ }
58
+
59
+ $stmt =$pdo->prepare('SELECT * FROM weapon WHERE weapon_name = :wea');//ここは、weaponaゾーン difは必要ないのだ
60
+ $stmt->bindValue(':wea', $weapon_a);
61
+ $stmt->execute();
62
+ foreach($stmt as $row)
63
+ {
64
+ $weapon_a_dam = (int)$row['damage'];
65
+ $weapon_a_num = (int)$row['num'];
66
+ }
67
+ $stmt =$pdo->prepare('SELECT * FROM weapon WHERE weapon_name = :wea');
68
+ $stmt->bindValue(':wea', $weapon_m);
69
+ $stmt->execute();
70
+ foreach($stmt as $row)
71
+ {
72
+ $weapon_m_dam = (int)$row['damage'];
73
+ $weapon_m_attribute = (int)$row['weapon'];
74
+ $weapon_m_heal = (int)$row['heal'];
75
+ }
76
+
77
+ //今からひたすらにjsonに書き換える
78
+ $spe_type_json = json_encode( $spe_type );
79
+ $spe_damage_json = json_encode( $spe_damage );
80
+ $spe_num_json = json_encode( $spe_num );
81
+ $atkAH_json = json_encode( $atkStatus_a_h );
82
+ $atkAA_json = json_encode( $atkStatus_a_a );
83
+ $atkAM_json = json_encode( $atkStatus_a_m );
84
+ $atkAD_json = json_encode( $atkStatus_a_d );
85
+ $atkAS_json = json_encode( $atkStatus_a_s );
86
+ $atkBH_json = json_encode( $atkStatus_b_h );
87
+ $atkBA_json = json_encode( $atkStatus_b_a );
88
+ $atkBM_json = json_encode( $atkStatus_b_m );
89
+ $atkBD_json = json_encode( $atkStatus_b_d );
90
+ $atkBS_json = json_encode( $atkStatus_b_s );
91
+ $difAH_json = json_encode( $difStatus_a_h );
92
+ $difAA_json = json_encode( $difStatus_a_a );
93
+ $difAM_json = json_encode( $difStatus_a_m );
94
+ $difAD_json = json_encode( $difStatus_a_d );
95
+ $difAS_json = json_encode( $difStatus_a_s );
96
+ $difBH_json = json_encode( $difStatus_b_h );
97
+ $difBA_json = json_encode( $difStatus_b_a );
98
+ $difBM_json = json_encode( $difStatus_b_m );
99
+ $difBD_json = json_encode( $difStatus_b_d );
100
+ $difBS_json = json_encode( $difStatus_b_s );
101
+ $weapon_a_dam_json = json_encode( $weapon_a_dam);
102
+ $weapon_a_num_json = json_encode( $weapon_a_num);
103
+ $weapon_m_dam_json = json_encode( $weapon_m_dam);
104
+ $weapon_m_attribute_json = json_encode( $weapon_m_attribute);
105
+ $weapon_m_heal_json = json_encode( $weapon_m_heal);
106
+ $atkSkill_json = json_encode( $atkSkill );
107
+ $difSkill_json = json_encode( $difSkill );
108
+ $weaponaName_json = json_encode( $weapon_a );
109
+ $weaponmName_json = json_encode( $weapon_m );
110
+
111
+ $pdo =null;
112
+
27
- } catch (PDOException $e) {
113
+ } catch (PDOException $e) {
28
114
 
115
+ header('Content-Type: text/plain; charset=UTF-8', true, 500);
29
- //省略
116
+ exit($e->getMessage());
117
+
118
+ }
119
+ header('Content-Type: text/html; charset=utf-8');
120
+ }
121
+ //ここなんですがまだ把握し切ってなかったので変更してないです 取り敢えずjsの処理が済んだらこっちに手つけます
30
122
 
31
- }
32
- }
33
- header('Content-Type: text/html; charset=utf-8');
34
123
  ?>
35
-
36
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
37
- <html>
38
-
39
- <!--省略-->
40
- <div class="main-downdown">
41
- <label for="label1">計算する</label>
42
- <form method="post" action="index.php">
43
- <input type="button" value="実行" name="s" id="label1" onclick="changeframe_blue();" > <!--ここでボタンを押します-->
44
- </form>
45
- </div>
46
- </html>
47
124
  ```
48
125
 
49
126
  ```javascript
@@ -52,12 +129,40 @@
52
129
  document.getElementById('innerHTMLtxt').style.borderColor = '#01eeff';
53
130
 
54
131
  }
132
+
133
+ //新しく関数connect_dataを作りました jQueryを呼びます
134
+ function connect_data(){
135
+
136
+ let atkId = new Option(document.getElementById("atkName").value);
137
+ let difId = new Option(document.getElementById("difName").value);
138
+
139
+ $.ajax({
140
+ url: 'find_value.php', //アクセスするURL
141
+ type: 'post',   //post or get
142
+ cache: false, //cacheを使うか使わないかを設定
143
+ dataType:'json', //data type script・xmlDocument・jsonなど
144
+ data:{'func' : 'connect_with_data', 'atkId': atkId, 'difId': difId }, //アクセスするときに必要なデータを記載
145
+ })
146
+ .done(function(response) { //正常に処理が完了した時
147
+ getValue();//成功した時に、計算用関数(下にあるやつ)を実行するようにします!
148
+
149
+ })
150
+ .fail(function(xhr) {
151
+ //ここは多分書いた方がいいけどまだ手をつけてません...次回見直すときここも修正します
152
+ })
153
+ .always(function(xhr, msg) {
154
+
155
+ });
156
+
157
+ }
158
+
159
+
55
160
  function getValue() {
56
- let atkId = new Option(document.getElementById("atkName").value);
161
+ let atkId = new Option(document.getElementById("atkName").value);//フォームから値を読み込んでます
57
162
  let atkType = new Option(document.getElementById("atkType").value);
58
163
  let atkArm = new Option(document.getElementById("atkArm").value);
59
164
  //省略
60
- var atkName = JSON.parse('<?php echo $atkName_json; ?>');
165
+ var atkName = JSON.parse('<?php echo $atkName_json; ?>');//phpで入手したデータを取り込んでます
61
166
  var difName = JSON.parse('<?php echo $difName_json; ?>');
62
167
  var spe_name = JSON.parse('<?php echo $spe_name_json; ?>');
63
168
 
@@ -66,12 +171,86 @@
66
171
  if(1==1)//この式も省略してます
67
172
  {
68
173
 
69
- }else
174
+ }else//計算してます
70
175
  {
71
- howmanyTokill = Math.floor(howmanyTokill/100);
72
- innerHTMLtxt.innerHTML ="期待値は"+resultNum+"!";
176
+ innerHTMLtxt.innerHTML ="期待値は"+resultNum+"!";//htmlの結果表示欄はデフォルトでは空白にしてあります。ここを埋めることで更新しようと考えてます!
73
177
  }
74
178
  }
75
179
 
76
180
 
77
- ```
181
+ ```
182
+
183
+ ```html
184
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
185
+ <html>
186
+ <head>
187
+ <script type="text/javascript" src="real.js"></script>
188
+ <script src="jQuery-3.6.0.min.js"></script><!--ここでjQueryを読み込んでますが、エラーが起きてしまってます(´・_・`) バージョンはあってますよ!-->
189
+ </head>
190
+
191
+ <body>
192
+ <div class="top">
193
+ <h2 class="icon-sentence">妖怪ウォッチ2ダメージ計算</h2>
194
+ <img class="topicon" src="iconimg.jpeg" width="150px";>
195
+ </div>
196
+
197
+ <div class= "main">
198
+ <div class= "main-upper">
199
+ <div class= "attack-input">
200
+ <p class=ababab>アタッカーの設定</p>
201
+ <p>
202
+ <form action="index.php" method="post">
203
+ <label for ="attackerSelect">妖怪の名前:</label>
204
+ <select id="atkName" name="attackerSelect">
205
+ <option value="1">妖怪の種類を選択</option>
206
+ <option value="1">ぶようじん坊</option>
207
+ <option value="2">がらあきん坊</option>
208
+ <option value="3">さきがけの助</option>
209
+ <option value="4">ダラケ刀</option>
210
+ <option value="5">ザンバラ刀</option>
211
+ </select>
212
+ </form>
213
+ </p>
214
+ <p>
215
+ <label for ="feelSelect">検証する技:</label>
216
+ <select id="atkType" name="feelSelect">
217
+ <option value="1">物理技の火力</option>
218
+ <option value="2">妖術技の火力</option>
219
+ </select>
220
+ </p>
221
+ <p>
222
+ <label for ="armSelect">装備:</label>
223
+ <select id="atkArm" name="armSelect">
224
+ <option value="a_densetsu">伝説の腕輪</option>
225
+ <option value="">その他</option>
226
+ </select>
227
+ </p>
228
+ </div>
229
+ <div class="main-downdown">
230
+ <label for="label1">計算する</label><!--ここがボタンです!jsファイルに繋がってます!-->
231
+ <input type="button" id="label1" onclick="changeframe_blue(); connect_data();" >
232
+ </div>
233
+ </div>
234
+ <div class="resultA" id="innerHTMLtxt"></div>
235
+ ```
236
+
237
+ ### 画像
238
+
239
+ なぜか画像貼れないです...
240
+ なのでエラ〜メッセージをコピペしました
241
+
242
+ > Uncaught TypeError: Illegal invocation
243
+ at i (jQuery-3.6.0.min.js:2)
244
+ at At (jQuery-3.6.0.min.js:2)
245
+ at At (jQuery-3.6.0.min.js:2)
246
+ at At (jQuery-3.6.0.min.js:2)
247
+ at Function.S.param (jQuery-3.6.0.min.js:2)
248
+ at Function.ajax (jQuery-3.6.0.min.js:2)
249
+ at connect_data (real.js:14)
250
+ at HTMLInputElement.onclick ((インデックス):561)
251
+
252
+ connect_dataは$.ajaxの行を指してます
253
+ HTMLはボタンの行です
254
+ jQueryはほとんどが2行目にあるので特定不可です...
255
+
256
+ よろしくお願いします

2

サイト消しました

2021/11/12 21:01

投稿

TrueRyoB
TrueRyoB

スコア79

title CHANGED
File without changes
body CHANGED
@@ -74,9 +74,4 @@
74
74
  }
75
75
 
76
76
 
77
- ```
77
+ ```
78
-
79
- 追記
80
- 私のサイトです。売名になるようでしたらすぐ消します。フォームを入力して「計算する」ボタンを押したら結果をでるようにしたいです。なんとなくイメージが伝わりやすいと思うので貼っておきますm(_ _)m
81
- 因みに今は機能していません(´・ω・`)
82
- https://ryorar.tokyo/

1

2021/11/12 06:59

投稿

TrueRyoB
TrueRyoB

スコア79

title CHANGED
File without changes
body CHANGED
@@ -74,4 +74,9 @@
74
74
  }
75
75
 
76
76
 
77
- ```
77
+ ```
78
+
79
+ 追記
80
+ 私のサイトです。売名になるようでしたらすぐ消します。フォームを入力して「計算する」ボタンを押したら結果をでるようにしたいです。なんとなくイメージが伝わりやすいと思うので貼っておきますm(_ _)m
81
+ 因みに今は機能していません(´・ω・`)
82
+ https://ryorar.tokyo/