- ベストアンサー
JavaScript PHP 教えてください
- JavaScriptとPHPに関する質問文章です。
- 質問文章には、タイプ別の点数計算式があります。
- 最も点数が高いタイプがあなたに一番近いタイプです。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
ただ、ちょっとわからないのは、ここ >1=よくあてはまる 2=あてはまる 3=あまりあてはまらない 4=あてはまらない あてはまるほうが「高得点」じゃないか?という点。。。 これだと、あてはまる1点、あてはまらない4点で 問題にそれ以外の要素があるような気がします。 >▼ アナライザーの点数 >=13-(設問1・5・10・12・15であなたが丸をつけた数字の合計点) ( 点) 次の疑問、 「1・5・10・12・15」(合計5カラム)が各1~4点なので、 これの最大合計値は 5x4=つまり20点が最大値です。 しかし先頭に”13-”とあるので、13-20=-7となるのですよ。 なぜ13から引いているのかが、わからないのですよね~。 これって、"ー"「引く」なのだろうか?という疑問。。 そこは、問題文をよく見てもらえますか? そこは、さすがに回答側が教えるようなことじゃないので。 むしろ「国語」の世界かなと、感じたので^^ ただ、もう、ほとんど理解できたのではないかと思います。 がんばっす!
その他の回答 (7)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
一つアドバイス。 同じ目的の板を立てまくってるみたいで、 あまりやると、運営に消されてしまうので、 せっかく回答した人たちも、あなた自身も 回答が見れなくなって、本末転倒です。 一度に同じ目的の板は1つにしたほうがいいですよ。 あと、「丸ごと教えてほしい」というのはNGです。 テストの問題などを第3者が代理したことになってしまうので。 まずは、やってみて、わからない所だけをどんどん 一つの板で完結させるようにした方が、 あなた自身が一つの情報が1か所に集まるので、 管理しやすいですよ。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>この処理が終わったら何も表示されません。それはradioの中のvalueが取得できたと思っていいのですか? あなたが書いたprint_rで表示できているのが証拠です。 取り込めてますよ。 >この後の▼ コントローラーの点数 >=11-(設問4・7・17・19・20であなたが丸をつけた数字の合計点) ( 点) ここですが、そのまま、 $ans=11-$data[4] + $data[7] + $data[19] + $data[20]; echo "ans=".$ans."点<br>"; ←このような表示関数を入れれば画面に出ますよ。 後は、同じようにやればOKです。 配列($data)の数をあわせたのはそのためです。 問題文をそのまま、ソースに書いて計算できるので、楽でしょ? ってことで、そうした(R1~R20にさせた理由です)わけです。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
$data[$i]=$_POST["R"+$i]; これ結合のほうが安全かも $data[$i]=$_POST["R".$i]; とドットでつないでおいてください。念のため。 実際には先頭が数字になることはあり得ないのですが、 "+"で、結合ではなく加算されるケースもあり、バグの元になるので。
補足
本当に無知ですいません。 <input type="submit" value="点数の計算して、タイプを決定します">で飛ばして Array ( [R1] => 1 [R2] => 2 [R3] => 3 [R4] => 1 [R5] => 2 [R6] => 3 [R7] => 2 [R8] => 3 [R9] => 2 [R10] => 3 [R11] => 2 [R12] => 3 [R13] => 4 [R14] => 1 [R15] => 2 [R16] => 3 [R17] => 1 [R18] => 2 [R19] => 4 [R20] => 3 )が入ってること確認できました。 <?php // $_POST配列の全内容を表示 print_r($_POST); print("<br>\n"); $data=[]; // PHPのバージョンによっては、$data=array();と書く for ($i=1;$i<=20;$i++) { if (isset($_POST["R".$i])) { $data[$i]=$_POST["R".$i]; }else{ $data[$i]=0; } } ?> この処理が終わったら何も表示されません。それはradioの中のvalueが取得できたと思っていいのですか? この後の▼ コントローラーの点数 =11-(設問4・7・17・19・20であなたが丸をつけた数字の合計点) ( 点) ▼ プロモーターの点数 =12-(設問2・6・8・11・14であなたが丸をつけた数字の合計点) ( 点) ▼ サポーターの点数 =12-(設問3・9・13・16・18であなたが丸をつけた数字の合計点) ( 点) ▼ アナライザーの点数 =13-(設問1・5・10・12・15であなたが丸をつけた数字の合計点) ( 点) のコードを教えてもらえませんか、一週間前からやって無理でしたのでお願いします。 <tr> <td><input type="radio" name="R1" value="1"></td> <td><input type="radio" name="R1" value="2"></td> <td><input type="radio" name="R1" value="3"></td> <td><input type="radio" name="R1" value="4"></td> </tr> <tr> <td><input type="radio" name="R2" value="1"></td> <td><input type="radio" name="R2" value="2"></td> <td><input type="radio" name="R2" value="3"></td> <td><input type="radio" name="R2" value="4"></td> </tr> <tr> <td><input type="radio" name="R3" value="1"></td> <td><input type="radio" name="R3" value="2"></td> <td><input type="radio" name="R3" value="3"></td> <td><input type="radio" name="R3" value="4"></td> </tr> <tr> <td><input type="radio" name="R4" value="1"></td> <td><input type="radio" name="R4" value="2"></td> <td><input type="radio" name="R4" value="3"></td> <td><input type="radio" name="R4" value="4"></td> </tr> <tr> <td><input type="radio" name="R5" value="1"></td> <td><input type="radio" name="R5" value="2"></td> <td><input type="radio" name="R5" value="3"></td> <td><input type="radio" name="R5" value="4"></td> </tr> <tr> <td><input type="radio" name="R6" value="1"></td> <td><input type="radio" name="R6" value="2"></td> <td><input type="radio" name="R6" value="3"></td> <td><input type="radio" name="R6" value="4"></td> </tr> <tr> <td><input type="radio" name="R7" value="1"></td> <td><input type="radio" name="R7" value="2"></td> <td><input type="radio" name="R7" value="3"></td> <td><input type="radio" name="R7" value="4"></td> </tr> <tr> <td><input type="radio" name="R8" value="1"></td> <td><input type="radio" name="R8" value="2"></td> <td><input type="radio" name="R8" value="3"></td> <td><input type="radio" name="R8" value="4"></td> </tr> <tr> <td><input type="radio" name="R9" value="1"></td> <td><input type="radio" name="R9" value="2"></td> <td><input type="radio" name="R9" value="3"></td> <td><input type="radio" name="R9" value="4"></td> </tr> <tr> <td><input type="radio" name="R10" value="1"></td> <td><input type="radio" name="R10" value="2"></td> <td><input type="radio" name="R10" value="3"></td> <td><input type="radio" name="R10" value="4"></td> </tr> はR20まで略は書きました
- AsarKingChang
- ベストアンサー率46% (3467/7474)
人によっては、バリデーションをこう書いているケースもあるので、 $data[$i]=isset($_POST["R"+$i])? $_POST["R"+$i]:0; 気が向いたら勉強してみてもいいかもです。 $data[$i] これの$iを省略してるケースもあります。 $data[]=xxxなど。これの挙動も print_r($data);などで、どうなるのか?を見ておくと 勉強になると思います!。 では!
- AsarKingChang
- ベストアンサー率46% (3467/7474)
次にPHP作成です。 先ほど、チェックしていない項目は、「Rxxx」がそもそも送られて いないことが確認できましたね。 ですので、 https://www.php.net/manual/ja/function.isset.php これを使います。 isset ( mixed $var [, mixed $... ] ) : bool if (isset($_POST["R20"]))===TRUE) { /* R20にチェックされている */ }else{ /* R20にチェックがない */ } のように使います。 なので、まとめると、 $data=[]; // PHPのバージョンによっては、$data=array();と書く for ($i=1;$i<=20;$i++) { if (isset($_POST["R"+$i])) { $data[$i]=$_POST["R"+$i]; }else{ $data[$i]=0; } } こんな感じで、1~20のデータをPHPに取り込む。 後は、わかりますね。 テストに使用したHTMLは、 <form action="f.html" method="post"> <table> <tr> <th></th><th>1</th><th>2</th><th>3</th><th>4</th> </tr> <tr> <td>質問1</td> <td><input type="radio" name="R1" value="1"></td> <td><input type="radio" name="R1" value="2"></td> <td><input type="radio" name="R1" value="3"></td> <td><input type="radio" name="R1" value="4"></td> </tr> <tr> <td>質問2</td> <td><input type="radio" name="R2" value="1"></td> <td><input type="radio" name="R2" value="2"></td> <td><input type="radio" name="R2" value="3"></td> <td><input type="radio" name="R2" value="4"></td> </tr> ~~以下ずらずら~~ 後は!頑張って!
- AsarKingChang
- ベストアンサー率46% (3467/7474)
<form action="chackbox.php" method="post"> どうでもいいことから、まず! 「chackbox」=チャックボックス??? checkboxですね。ここは別に無関係なのでOKですが。 >checkboxは20個です。ここはradioのほうが良いのでしょうか? 説明が下手ですいません 質問の趣旨から考えると、radioのほうがいいのではないでしょうか? 複数チェックできるか、そのグループ内を一つ選べるか?ですが。 今回は、1列で1つを選ぶのではないかと。 <tr> <td><input type="radio" name="R4" value="1"></td> <td><input type="radio" name="R4" value="2"></td> <td><input type="radio" name="R4" value="3"></td> <td><input type="radio" name="R4" value="4"></td> </tr> などのほうがいいですね。 で、このnameは、1つのグループで共通として 1~4までの値を持ったR4を一度使ったら 他の行では使わないことを絶対とします。 (そうしないと、どこを押したのかわからなくなるため) 今回20ラインあるのであれば、 R1~R20までとして、用意します。 PHPを作る前にテストするには、 今作っているファイル名が、f.htmlだと仮定して <form action="f.html" method="post"> そのファイルそのものにPOSTしてしまっていいです。 確認方法を画像にしておきますので、 見てもらえたらと思います。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
JavaScriptはクライアントサイド言語で PHPはサーバーサイド言語で種類が違うのですが、 どっちがメインなのでしょうか? それと、この問題のどこがわからないのでしょうか? 議題はあるものの、質問がないので、よくわからないのです。 どの部分が分からないなど、質問形式にしてもらえれば 回答できるとは思います。
補足
<div class ="test1"> <form action="chackbox.php" method="post"> <table> <tr> <th>1</th><th>2</th><th>3</th><th>4</th> </tr> <tr> <td><input type="checkbox" name="R4" value="1"></td> <td><input type="checkbox" name="R4" value="2"></td> <td><input type="checkbox" name="R4" value="3"></td> <td><input type="checkbox" name="R4" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R2" value="1"></td> <td><input type="checkbox" name="R2" value="2"></td> <td><input type="checkbox" name="R2" value="3"></td> <td><input type="checkbox" name="R2" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R3" value="1"></td> <td><input type="checkbox" name="R3" value="2"></td> <td><input type="checkbox" name="R3" value="3"></td> <td><input type="checkbox" name="R3" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R1" value="1"></td> <td><input type="checkbox" name="R1" value="2"></td> <td><input type="checkbox" name="R1" value="3"></td> <td><input type="checkbox" name="R1" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R4" value="1"></td> <td><input type="checkbox" name="R4" value="2"></td> <td><input type="checkbox" name="R4" value="3"></td> <td><input type="checkbox" name="R4" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R2" value="1"></td> <td><input type="checkbox" name="R2" value="2"></td> <td><input type="checkbox" name="R2" value="3"></td> <td><input type="checkbox" name="R2" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R1" value="1"></td> <td><input type="checkbox" name="R1" value="2"></td> <td><input type="checkbox" name="R1" value="3"></td> <td><input type="checkbox" name="R1" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R2" value="1"></td> <td><input type="checkbox" name="R2" value="2"></td> <td><input type="checkbox" name="R2" value="3"></td> <td><input type="checkbox" name="R2" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R3" value="1"></td> <td><input type="checkbox" name="R3" value="2"></td> <td><input type="checkbox" name="R3" value="3"></td> <td><input type="checkbox" name="R3" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R4" value="1"></td> <td><input type="checkbox" name="R4" value="2"></td> <td><input type="checkbox" name="R4" value="3"></td> <td><input type="checkbox" name="R4" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R2" value="1"></td> <td><input type="checkbox" name="R2" value="2"></td> <td><input type="checkbox" name="R2" value="3"></td> <td><input type="checkbox" name="R2" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R4" value="1"></td> <td><input type="checkbox" name="R4" value="2"></td> <td><input type="checkbox" name="R4" value="3"></td> <td><input type="checkbox" name="R4" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R3" value="1"></td> <td><input type="checkbox" name="R3" value="2"></td> <td><input type="checkbox" name="R3" value="3"></td> <td><input type="checkbox" name="R3" value="4"></td> </tr> <tr> <td><input type="checkbox" name="R3" value="1"></td> <td><input type="checkbox" name="R3" value="2"></td> <td><input type="checkbox" name="R3" value="3"></td> <td><input type="checkbox" name="R3" value="4"></td> </tr> </table> <input type="submit" value="点数の計算して、タイプを決定します"> <input type="reset"> </from> nameでR1,R2,R3,R4を選択した後の処理が分かりません。初心者なのでPHP、JavaScriptどちらでもいいです。 この後の処理が分かりません、もし間違っていたら、正しいコードを書いてほしいです。お願いします 11-(設問4・7・17・19・20であなたが丸をつけた数字の合計点) ( 点) checkboxは20個です。ここはradioのほうが良いのでしょうか? 説明が下手ですいません
補足
本当にありがとうございました。やってみたとこ無事にできました。 感謝です!!!!!!!