2つ以上のボタンを持つ呼び出し側のページのどのボタンが押されたのかを判断する方法を説明します。
呼び出し側の記述
ボタンは<button・・・>で記述します。
<button name="button" value="kon">こんにちは</button>
<button name="button" value="seka">世界</button>
すべてのボタンの name を同じ値(button)にすることがポイントです。
ボタンは一度に1個しか押せないので、valueの値でどのボタンが押されたのか区別できます。
全体のHTMLはこちらのページに記載しています。
cgi側の記述
ボタンの値の取得
form = cgi.FieldStorage()
button = form.getvalue(‘button’, ”) #ボタンの値
ボタンの区別
ボタンが2つしかないなら if else で十分です。
if button == "kon":
aisatsu="こんにちは"
sekai = "World"
else:
aisatsu="Hello"
sekai = "世界"
ボタンが3つ以上あるときは if elif・・・ を使います。
if button == "kon":
aisatsu="こんにちは"
sekai = "World"
elif button == "seka":
aisatsu="Hello"
sekai = "世界"
elif button == "gdgd":
aisatsu="Hel"
sekai = "地獄"
Pythonのバージョン3.10以降では他の言語でおなじみの case が使えるようになりましたが、さくらのレンタルサーバーでは2024年現在、3.8までしか使えないのでしばらくは if elif・・・ を使い続けることになります。
cgiの全体コードはこちらのページに記載しています。