取り敢えず、スイッチの操作部種別を選んだら、それに対応する極数の候補を動的に絞り込むというJavaScriptのコードをChatGPT4oに作らせ動きました。最初は絞り込みの対応関係をJSONで書いてそれを読み込ませようとしたのですが、上手く動かないので結局元のHTML(blade)ファイルの中に書込む形になりました。あまり綺麗ではありませんが。しかしなかなか大変。書店でJavaScriptの本を何冊か立ち読みしてみましたが、現在選択されている候補を取得するとか、逆に候補を設定するとかはありましたが、動的な絞り込みまで載っている本は見つけられませんでした。
=========================================
<script>
document.addEventListener(‘DOMContentLoaded’, function() {
const switchOpPartSelect = document.querySelector(‘select[name=”switch_op_part_id”]’);
const switchPoleSelect = document.querySelector(‘select[name=”switch_pole_id”]’);
const allPoleOptions = [
@foreach ($switch_poles as $switch_pole)
{ id: “{{ $switch_pole->id }}”, text: “{{ $switch_pole->poles_number }}” },
@endforeach
];
switchOpPartSelect.addEventListener(‘change’, function() {
const selectedOpPartId = parseInt(this.value);
let filteredPoleOptions = [{ id: “1”, text: “-” }];
if ([2, 3, 5, 6].includes(selectedOpPartId)) {
filteredPoleOptions = filteredPoleOptions.concat(allPoleOptions.filter(option => [11, 12, 13, 14].includes(parseInt(option.id))));
} else if (selectedOpPartId === 4) {
filteredPoleOptions = filteredPoleOptions.concat(allPoleOptions.filter(option => [11, 12].includes(parseInt(option.id))));
} else if (selectedOpPartId === 7) {
filteredPoleOptions = [{ id: “1”, text: “-” }].concat(allPoleOptions);
} else {
filteredPoleOptions = [{ id: “1”, text: “-” }].concat(allPoleOptions);
}
switchPoleSelect.innerHTML = ”;
filteredPoleOptions.forEach(option => {
const newOption = document.createElement(‘option’);
newOption.value = option.id;
newOption.textContent = option.text;
switchPoleSelect.appendChild(newOption);
});
});
document.querySelector(‘form’).addEventListener(‘submit’, function() {
showLoadingMessage();
});
window.resetForm = function() {
document.querySelectorAll(‘select’).forEach(select => {
select.selectedIndex = 0;
});
document.querySelector(‘input[name=”type_name”]’).value = ”;
switchPoleSelect.innerHTML = ”;
[{ id: “1”, text: “-” }].concat(allPoleOptions).forEach(option => {
const newOption = document.createElement(‘option’);
newOption.value = option.id;
newOption.textContent = option.text;
switchPoleSelect.appendChild(newOption);
});
}
});
function showLoadingMessage() {
document.getElementById(‘loading-message’).style.display = ‘block’;
document.body.classList.add(‘loading’);
}
</script>
スター・トレック・TNGの”Shades of Gray”を観ました。ライカーがある惑星で何かの細菌に感染し、それは転送装置のフィルターでも除去出来ず、ライカーはエンタープライズ号でポラスキーの治療を受けます。その細菌みたいなのはライカーの神経を徐々に化石化していきます。

ウルトラマンAの「海の虹に超獣が踊る」を観ました。ヤプール人の残骸もいい加減に無くなっている筈ですが。相も変わらず超獣は出現し続けます。今回の、何だか新マンのタッコングを思わせるような海洋生物型超獣は、タンカーを襲います。工場廃水で海が汚染され、その原因が石油だということで、タンカーを襲うという、それなりに知性がありそうな超獣です。その超獣に最初に襲われた船長の息子が、超獣の鱗を貝殻だと思い、その姉からその貝殻を1000枚集めれば父が帰ってくるという嘘を聞かされ、一所懸命に貝殻を集め…という内容です。この辺り、ヤプール人も夕子もいなくなり、惰性的に続いている感じです。
トワイライト・ゾーンの”The Old Man in the Cave”を観ました。舞台は1974年のアメリカのある村で、そこでは20人くらいの人々が細々と暮していました。1964年に核戦争があり、その村の人達はその生き残りでした。彼らが生き延びられた理由は「洞窟の中の老人」という者からいつもメッセージをもらっていて、例えば「明日は強い雨になり、その雨にはストロンチウム90が大量に含まれているので、全ての飲料水のタンクに覆いをしろ」などです。その村には外側が真っ黒になった缶詰めや飲料の瓶が多数残されていましたが、老人によればそれは放射能に汚染されているので身体に入れれば死ぬ、と言います。そんな時、村に武装した4人の兵士がやって来て、村を彼らの管理下に置く、と言い放ちます。そして「洞窟の中の老人」を迷信だと笑い、洞窟に案内させてその入り口を手榴弾で吹っ飛ばします。しかしその奥には鋼鉄の扉があり中には入れませんでした。兵士は缶詰めが汚染されてなどいない、と言い張り自分達で食べ、飲み、村の人もそれを見てそれらを食べ始めます。一人リーダーであったゴールドスミス(この名前は通常ユダヤ系です)だけがそれを拒否します。結局兵士は洞窟のドアをゴールドスミスに開けさせ(彼だけがその方法を知っていました)、中に皆が入ると、そこにあったのは一台のコンピューターでした…兵士と村の人はコンピューターを破壊します。そして何日か後、村の大地の上は死体でいっぱいで、兵士を含め缶詰め・瓶詰めを摂った者は全員死に絶えて、ゴールドスミスだけが生き残っていました…
ウルトラマンAの「あの気球船を撃て!」を観ました。南がいなくなってからの北斗は判断の誤りが多くなり、今回も本当は超獣である気球が発する異常なエネルギーを気球に初めて乗った子供達の熱気だと解釈してさっさと偵察を止めてしまいます。更にはいつもの山中隊員のように、気球に乗せられた子供達がおかしくなっていっていて気球はやはり超獣だというダンの情報を信じようとしません。それどころか結局気球が超獣だと分りましたが、子供が乗っていて攻撃出来ないため、北斗はダンを気球に乗り込ませます。ダンは最初は怖がって断っていたのを「ウルトラ兄弟達に笑われるぞ」と無理矢理な説得をします。しかしTACの作戦は結局失敗し、子供達は超獣の腹の中に吸い込まれてしまいます。最後はエースが切断技で超獣の首をはねて、子供達を解放するというものです。南がいた時は北斗に対して南が意見してそれで北斗が誤りに気付くとかがありましたが、一人になった北斗はレベルが落ちている感じです。この頃おそらく視聴率も落ちていたのではと思います。