###やりたいこと
ラジオボタンの選択項目に対応したセレクトボックスに切り替わる。
HTML
1<input type="radio" name="target" value="1">ターゲットA 2<input type="radio" name="target" value="2">ターゲットB 3<input type="radio" name="target" value="3">ターゲットC 4 5<select name="target"> 6 <?php foreach($masters as $master) : ?> 7 <option value="<?=$master['id']?>"><?=$master['name']?></option> 8 <?php endforeach; ?> 9</select>
PHP
1// それぞれ、データベースからデータを抽出済みです 2$masterA = master_data_get('tableA'); 3$masterB = master_data_get('tableB'); 4$masterC = master_data_get('tableC');
Javascriptだけで、例えば
html
1<select name="targetA"> 2 <?php foreach($masterA as $master) : ?> 3 <option value="<?=$master['id']?>"><?=$master['name']?></option> 4 <?php endforeach; ?> 5</select> 6<select name="targetB"> 7 <?php foreach($masterB as $master) : ?> 8 <option value="<?=$master['id']?>"><?=$master['name']?></option> 9 <?php endforeach; ?> 10</select> 11<select name="targetC"> 12 <?php foreach($masterC as $master) : ?> 13 <option value="<?=$master['id']?>"><?=$master['name']?></option> 14 <?php endforeach; ?> 15</select>
ラジオボタンの選択を一旦送ってその結果で$mastersへ代入してってのは問題ないのですが、ラジオボタンを選択するだけで切り替わるのがまずは基本ではあります。
一応やってみたこと
PHP
1fileA.php 2// それぞれ、データベースからデータを抽出済みです 3$masterA = master_data_get('tableA'); 4$masterB = master_data_get('tableB'); 5$masterC = master_data_get('tableC'); 6 7$json_masterA = json_encode($masterA); 8$json_masterB = json_encode($masterB); 9$json_masterC = json_encode($masterC);
HTML
1index.php 2<?php 3 require_once(fileA.php); 4 require_once(fileB.php); 5?> 6<html> 7 <head> 8 </head> 9 <body> 10 <script type="text/javascript"> 11 let masterA = JSON.parse('<?=$json_masterA;?>'); 12 let masterB = JSON.parse('<?=$json_masterB;?>'); 13 let masterC = JSON.parse('<?=$json_masterC;?>'); 14 $.ajax({ 15 type: "POST", 16 url: "fileB.php", 17 data: {'データ':masterA}, 18 dataType: "json", 19 scriptCharset: 'utf-8' 20 }); 21 </script> 22 </body> 23</html>
PHP
1fileB.php 2<?php 3$masters = filter_input(INPUT_POST, 'データ');
こういう感じで、サイトを見ながら書いてはみましたが、、、
Javascript側には確かにデータが渡っていました。
ようはリロードせずに一部だけを変化させるという機能を実装したいのですが、、、、
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/22 03:52