受信側で文字列の結合は必要ですが、
valueを変更いただくことで選択内容に合わせて受信いただけると思います。
(Javascriptを利用しないですが,,,)
ラジオボタンについては、猫のvalue="as" 犬のvalue="ab"
html
1 <label>
2 <input
3 type="radio"
4 name="cat"
5 value="as"
6 checked="checked"
7 onclick="entryChange1()"
8 />猫
9 </label>
10 <label>
11 <input
12 type="radio"
13 name="cat"
14 value="ab"
15 onclick="entryChange1()"
16
17 />犬
18 </label>
セレクトリストについては、0のvalue="dd" 1のvalue="cd"
html
1 <select name="CATage" onChange="number02()">
2 <option value="dd">0</option>
3 <option value="cd">1</option>
4 // 以下略
5 </select>
上記のようにするのはいかがでしょうか?
追記
問題なく動作しているソースを記入しておきます。
ご参考になれば幸いです。(一部ソースの記述変更していますがm(_ _)m)
画面側
HTML
1<!DOCTYPE html>
2<html>
3
4<head>
5 <meta charset="UTF-8">
6</head>
7
8<body>
9 <form action="http://localhost:7071/api/test" method="GET"> ←例のため記載しておきます。送信先は適宜変更してください。
10 <table border="0" cellspacing="0" cellpadding="0">
11 <tr>
12 <th>猫or犬</th>
13 <td>
14 <input type="radio" name="pet" value="as" onchange="createAgeSelectList()">
15 猫
16 </input>
17 <input type="radio" name="pet" value="ad" checked onchange="createAgeSelectList()">犬</input>
18 </td>
19 </tr>
20 <!--上記の選択内容によってoption value選択肢を変更する-->
21 <br>
22 <tr>
23 <th>年齢</th>
24 <td>
25 <select name="age" id="age"></select>
26 </td>
27 </tr>
28 </table>
29 <button>入力</button>
30 </form>
31 <script>
32 /** 猫年齢セレクトリスト */
33 const CAT_LIST = [
34 { value: 'dd', text: '0' },
35 { value: 'cd', text: '1' },
36 { value: 'bd', text: '2' },
37 { value: 'ad', text: '3' },
38 { value: 'zc', text: '4' },
39 { value: 'yc', text: '5' },
40 { value: 'xc', text: '6' },
41 { value: 'wc', text: '7' },
42 { value: 'vc', text: '8' },
43 { value: 'uc', text: '9' },
44 { value: 'tc', text: '10' },
45 { value: 'sc', text: '11' },
46 { value: 'rc', text: '12' },
47 { value: 'qc', text: '13' },
48 { value: 'pc', text: '14' }
49 ];
50 /** 犬年齢セレクトリスト */
51 const DOG_LIST = [
52 { value: 'dd', text: '0' },
53 { value: 'cd', text: '1' },
54 { value: 'bd', text: '2' },
55 { value: 'ad', text: '3' },
56 { value: 'zc', text: '4' },
57 { value: 'yc', text: '5' },
58 { value: 'xc', text: '6' },
59 { value: 'wc', text: '7' },
60 { value: 'vc', text: '8' },
61 { value: 'uc', text: '9' },
62 { value: 'tc', text: '10' },
63 { value: 'sc', text: '11' },
64 { value: 'rc', text: '12' },
65 { value: 'qc', text: '13' }
66 ];
67 /** 初期表示処理 */
68 window.onload = function () {
69 createAgeSelectList();
70 };
71 /** 年齢セレクトリスト生成 */
72 function createAgeSelectList() {
73 // 選択中のラジオボタンを取得
74 const pets = document.getElementsByName('pet');
75 let pet;
76 for (let i = 0; i < pets.length; i++) {
77 if (pets[i].checked) {
78 pet = pets[i].value;
79 break;
80 }
81 }
82 const targetList = pet === 'as' ? CAT_LIST : DOG_LIST;
83 const age = document.getElementById('age');
84 // 表示中のセレクトリストの子要素を削除
85 while (age.lastChild) {
86 age.removeChild(age.lastChild)
87 }
88 // セレクトリスト子要素を追加
89 targetList.forEach(i => {
90 const option = document.createElement('option');
91 option.setAttribute('value', i.value);
92 option.textContent = i.text;
93 age.appendChild(option);
94 })
95 };
96 </script>
97</body>
98
99</html>
動作確認のため、使用したAPI側(Azure Functionsを利用。ご参考までに...)
受け取り側で送信されてきた文字列を連結してあげれば、良いと思いました。
Typescript
1import { AzureFunction, Context, HttpRequest } from "@azure/functions"
2
3const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
4 const { pet, age } = req.query;
5 if (!pet || !age) {
6 context.res = {
7 status: 400,
8 body: "ペットまたは年齢が選択されていません。"
9 };
10 return;
11 }
12 context.res = {
13 status: 200,
14 body: pet + age // このように受け取り側で文字列を連結してあげれば良いのではと思っています。
15 };
16};
17
18export default httpTrigger;
19
追記2
データ送信せず画面に表示するということであれば以下のようになるかと思いますがいかがでしょうか?
html
1<!DOCTYPE html>
2<html>
3
4<head>
5 <meta charset="UTF-8">
6</head>
7
8<body>
9 <form action="#">
10 <table border="0" cellspacing="0" cellpadding="0">
11 <tr>
12 <th>猫or犬</th>
13 <td>
14 <input type="radio" name="pet" value="as" onchange="createAgeSelectList()" checked>
15 猫
16 </input>
17 <input type="radio" name="pet" value="ad" onchange="createAgeSelectList()">犬</input>
18 </td>
19 </tr>
20 <!--上記の選択内容によってoption value選択肢を変更する-->
21 <br>
22 <tr>
23 <th>年齢</th>
24 <td>
25 <select name="age" id="age"></select>
26 </td>
27 </tr>
28 </table>
29 <button type="button" onclick="onClickInput()">入力</button>
30 </form>
31 <div id="output"></div>
32 <script>
33
34 const CAT_LIST = [
35 { value: 'dd', text: '0' },
36 { value: 'cd', text: '1' },
37 { value: 'bd', text: '2' },
38 { value: 'ad', text: '3' },
39 { value: 'zc', text: '4' },
40 { value: 'yc', text: '5' },
41 { value: 'xc', text: '6' },
42 { value: 'wc', text: '7' },
43 { value: 'vc', text: '8' },
44 { value: 'uc', text: '9' },
45 { value: 'tc', text: '10' },
46 { value: 'sc', text: '11' },
47 { value: 'rc', text: '12' },
48 { value: 'qc', text: '13' },
49 { value: 'pc', text: '14' }
50 ];
51
52 const DOG_LIST = [
53 { value: 'dd', text: '0' },
54 { value: 'cd', text: '1' },
55 { value: 'bd', text: '2' },
56 { value: 'ad', text: '3' },
57 { value: 'zc', text: '4' },
58 { value: 'yc', text: '5' },
59 { value: 'xc', text: '6' },
60 { value: 'wc', text: '7' },
61 { value: 'vc', text: '8' },
62 { value: 'uc', text: '9' },
63 { value: 'tc', text: '10' },
64 { value: 'sc', text: '11' },
65 { value: 'rc', text: '12' },
66 { value: 'qc', text: '13' }
67 ];
68
69 window.onload = function () {
70 createAgeSelectList();
71 };
72
73 function createAgeSelectList() {
74 const pets = document.getElementsByName('pet');
75 // 選択中のペットの値を取得
76 const pet = getSelectedValue(pets, 'checked');
77 const targetList = pet === 'as' ? CAT_LIST : DOG_LIST;
78 const age = document.getElementById('age');
79 // 表示中のセレクトリストの子要素を削除
80 while (age.lastChild) {
81 age.removeChild(age.lastChild)
82 }
83 // セレクトリスト子要素を追加
84 targetList.forEach(i => {
85 const option = document.createElement('option');
86 option.setAttribute('value', i.value);
87 option.textContent = i.text;
88 age.appendChild(option);
89 })
90 };
91
92 function onClickInput() {
93 const pets = document.getElementsByName('pet');
94 // 選択中のペットの値を取得
95 const pet = getSelectedValue(pets, 'checked');
96 const ageList = document.getElementsByName('age');
97 // 選択中の年齢の値を取得
98 const age = getSelectedValue(ageList[0], 'selected');
99 const output = document.getElementById('output');
100 // 結果を表示
101 output.textContent = pet + age;
102 }
103
104 function getSelectedValue(nodeList, decitionItemName) {
105 for (let i = 0; i < nodeList.length; i++) {
106 if (nodeList[i][decitionItemName]) {
107 return nodeList[i].value;
108 }
109 }
110 }
111 </script>
112</body>
113
114</html>
ご参考になれば幸いです。