ここから本文です

投票受付終了まであとわずか ベストアンサーにふさわしい回答に投票してください

投票すると知恵コイン5枚プラスされます。

フォームから受け取った値を元にjavascriptで計算して次のページを送りたいのです...

miz********さん

2019/7/308:00:03

フォームから受け取った値を元にjavascriptで計算して次のページを送りたいのですが、ご教授頂けないでしょうか。

フォームから食べられる=1、食べられない=0、のラジオボックスの値を受け取ります。
受け取ったデータはデータベースに入ります。
その後、受け取った値を元にビタミン値を計算するjavascriptで計算して
計算した値を次のページに送ります。
チェックボックスでやった場合はうまく計算出来て送信も出来たのですが、フォームからデータを受けた場合どうしたらいいのかが分からず、試行錯誤しております。
なにかヒントを頂けないでしょうか。
フォーム
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>form</title>
</head>
<body>
<form action="INSERT.php" method="get">
<p>レモン</p>
<label><input type="radio" name="q1" value="1">食べられる</label>
<label><input type="radio" name="q1" value="0">食べられない</label>
<br>
<p>キウイ</p>
<label><input type="radio" name="q2" value="1">食べられる</label>
<label><input type="radio" name="q2" value="0">食べられない</label>
<br>
<p>'豚レバー</p>
<label><input type="radio" name="q3" value="1">食べられる</label>
<label><input type="radio" name="q3" value="0">食べられない</label>
<br>
<p>きくらげ</p>
<label><input type="radio" name="q4" value="1">食べられる</label>
<label><input type="radio" name="q4" value="0">食べられない</label>
<br>
<p>さんま</p>
<label><input type="radio" name="q5" value="1">食べられる</label>
<label><input type="radio" name="q5" value="0">食べられない</label>
<br>
<p>うなぎ</p>
<label><input type="radio" name="q6" value="1">食べられる</label>
<label><input type="radio" name="q6" value="0">食べられない</label>
<br>
<p>モロヘイヤ</p>
<label><input type="radio" name="q7" value="1">食べられる</label>
<label><input type="radio" name="q7" value="0">食べられない</label>
<br>
<p>わかめ</p>
<label><input type="radio" name="q8" value="1">食べられる</label>
<label><input type="radio" name="q8" value="0">食べられない</label>
<br>
<p>大豆</p>
<label><input type="radio" name="q9" value="1">食べられる</label>
<label><input type="radio" name="q9" value="0">食べられない</label>
<br>
<p>芽キャベツ</p>
<label><input type="radio" name="q10" value="1">食べられる</label>
<label><input type="radio" name="q10" value="0">食べられない</label>
<br>
<input type="submit" value="送信">
</form>
</body>
</html>
受け取るphp(INSERT.php)
<?php
//食べられる="1",食べられない="0"
$q1 = $_GET['q1'];
$q2 = $_GET['q2'];
$q3 = $_GET['q3'];
$q4 = $_GET['q4'];
$q5 = $_GET['q5'];
$q6 = $_GET['q6'];
$q7 = $_GET['q7'];
$q8 = $_GET['q8'];
$q9 = $_GET['q9'];
$q10 = $_GET['q10'];
//アンケート結果をデータベースに挿入、文字数制限の為省略
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>INSERT</title>
</head>
<body>
<!--フォームから受け取った値が1の場合、ビタミン値が0なら加算されないとしたいです。-->

<div class="a" id="vitamin_a"></div>
<div class="a" id="vitamin_d"></div>
<div class="a" id="vitamin_e"></div>
<div class="a" id="vitamin_k"></div>
<div class="a" id="vitamin_b1"></div>
<div class="a" id="vitamin_b2"></div>
<div class="a" id="vitamin_c"></div>

<script type="text/javascript">
var c = document.getElementsByName( "c" );
var a = document.getElementsByClassName( "a" );
var v={
'レモン' :[1,0,0.1,0,0.04,0.02,50]
,'キウイ' :[6,0,1.3,0,0.01,0.02,69],
'豚レバー' :[13000,2.86,0.88,0,0.75,7.92,44],
'きくらげ' :[0,39.4,0,0,0.19,0.87,5],
'さんま' :[13,19,1.3,0,0.01,0.26,0],
'うなぎ' :[2400,18,7.4,0,0.37,0.48,2],
'モロヘイヤ' :[840,0,6.5,640,0.18,0.42,65],
'わかめ' :[650,0,1,660,0.39,0.83,27],
'大豆' :[1,0,1.8,18,0.83,0.3,0],
'芽キャベツ'' :[59,0,0.6,150,0.19,0.23,160],

}
function myfunc(){
var s = [0,0,0.0,0,0.00,0.00,0];
for( var i = 0; i < c.length; i++ ){
var checkbox=c[i];
if( checkbox.checked ){
for( var k in s ){
s[k]+=v[checkbox.value][k];
s[k]=Math.round( s[k]*1000 )/1000;
}
}
}
for( var k in s ){
var id=a[k].getAttribute( "id" );
document.getElementById( id ).innerText = id + " : " + s[k];
document.querySelector("input[name='" + id + "']").value = s[k];
}
}
</script>
</body>
</html>
文字数制限の為値の表示部分は省略しました。
説明が不足している部分があればすみません。
子供向けの個人で作成しているサイトです。
よろしくお願いします。

閲覧数:
48
回答数:
1
お礼:
100枚

違反報告

回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

yoy********さん

編集あり2019/7/313:30:08

フォームから受け取った値を元にjavascriptで計算したのを次のページに表示させるphpを2つ作らないと無理です。

phpは、計算したその値を変数に格納して次ページに送るためと、受け渡した(格納した変数から値を受け取る)のをブラウザに表示させる2つのphpが要ります。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる