料金表(price.html) から選択したオプションを申込みページ(order.php)に反映させたうえで、反映させた内容によりその先のオプションを変更させたいです(javascript?)。
料金表(price.html)
HTML
1<form name="simulation" action="order.php" method="POST"> 2<input type="radio" name="customer" value="顧客数1000人以下" onClick="calc()" id="sim1"><label for="sim1">1,000人</label> 3<input type="radio" name="customer" value="顧客数3000人以下" onClick="calc()" id="sim2"><label for="sim2">3,000人</label> 4<input type="radio" name="customer" value="顧客数6000人以下" onClick="calc()" id="sim3"><label for="sim3">6,000人</label> 5<input type="submit" name="submit1" value="申し込み" /> 6</form>
申込みページ(order.php)
php
1<?php 2function scr_ent($hosturl) { 3 global $customer; 4?> 5<!--中略--> 6<head> 7<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 8<script type="text/javascript" src="../js/form.js"></script> 9<script type="text/javascript"> 10$(function(){ 11 var ser = '<?php echo $customer ?>'; 12 if( ser != '' ){ 13 $('#service').val(ser); 14 } 15}); 16</script> 17</head> 18<form method="post" action="order.php" name="form1"> 19<select name="service" id="service" class="formsinput req" onChange="selectCheck()" required/> 20<option value="顧客数1000人以下">顧客数 1,000人まで</option> 21<option value="顧客数3000人以下">顧客数 3,000人まで</option> 22<option value="顧客数6000人以下">顧客数 6,000人まで</option> 23</select> 24<p><input id="mail" type="checkbox" group="group1" value="使用する" name="mail" onChange="selectCheck()"/>メール配信(月額<input type="text" name="mailprice" value="0" class="no_border" readonly />円)</p> 25</form>
申込みページに読み込んでいるform.js
javascript
1$(function selectCheck(){ 2 3$(document.form1).change(function(){ 4//顧客数により料金切り替え 5 var opt = document.form1.service.selectedIndex; 6 var str = document.form1.service.options[opt].value; 7 fObj = document.form1; 8if( str == '顧客数1000人以下' ){ 9 fObj.mailprice.value = 30; 10}else if( str == '顧客数3000人以下' ){ 11 fObj.mailprice.value = 50; 12}else if( str == '顧客数6000人以下' ){ 13 fObj.mailprice.value = 80; 14} 15 16・・・つづく。。。 17})
先に制作した申込ページだけでやっている内はselectを変えると、月額〇円が変更されていました。
後から制作したhtmlから値を渡してselectを選んであげたところで月額〇円が出てきません。
javascriptの内容を画面をロードした時にも一度動かせればと思うのですが・・・
javascriptの冒頭の書き方↓を変更してformが変更された時もロードされた時も動く形に変えるにはどうすれば良いでしょうか?
javascript
1$(function selectCheck(){ 2$(document.form1).change(function(){
イベントハンドラの一覧は見てみましたが使えそうなものに気づきませんでした。
あるいは何か他のやり方がありますでしょうか?
order.php内の$(functionにform.jsと同じ内容を書くと実現できましたが、
ホントはもっと長いしjavascriptですし、同じこと書くのもカッコ悪いので
良い方法がありましたらご教示ください。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/29 07:40