自分が想定している解決法が全く違うかも知れませんが、教えて頂きたく。
下記の様なWebアプリケーションを、Python+Flaskで作成しました。
行きたい国を選んで、「送信」ボタンを押すと、こんな様に表示するところまでは、完成しております。
ここまでが、「出来ている所」です。(コードは文末に記載しております。)
<やりたい事>
上記の2つ目表示で、選択された各国に対して、別のエクセル(あるいはDB)から、補足情報を引っ張ってきた上で、追記したいと思っております。
つまり、1枚目の「送信」ボタンをクリックした後に、こんな風に表示させたいと思っております。
↓ ↓ ↓
”Agency Name”とか、”emailアドレス”は、別のエクセルシートから、国名をキーにして引っ張ってきた上で、上記の様に表示したいと思っております。
<質問>
多分、htmlのチェックボックスのValueの部分に、何か追記するんだと思うのですが、かなり試行錯誤したのですが、分かりません。
教えて頂きたく。
多分ですが、value="Afganhanistan"となっているとこに、「この国名をキーにして、別紙のエクセルシートのB列とC列の該当セルを引っ張ってこい。」みたいな記載を書き足す事になると思うのですが。。。。
<現在のHTMLの該当部分抜粋>
======================= <div> <label for="ck1">Afgahanistan:</label> <input type="checkbox" id="ck1" name="checkbox" value="Afgahanistan"> </div> ======================コード
あるいは、別のやり方があるのでしょうか?
よろしくお願いいたします。
<御参考>
参考までに、「出来ている所」までのコードを記載します。
<Pythonのコード>
# -*- coding: utf-8 -*- from flask import Flask, render_template from collections import defaultdict from flask import request app = Flask(__name__) @app.route('/', methods=['GET']) def get(): return render_template('index1.html', \ title = 'Form Sample(get)', \ message = 'Where do you want to go?') @app.route('/', methods=['POST']) def post(): name = request.form.getlist('checkbox') return render_template( 'index2.html', title = 'Form Sample(postx)', message = name, ) if __name__ == '__main__': app.run()
<Index1.htmlのコード>
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Hello World</title> </head> <body> <h1>{{ title }}</h1> <p>{{ message }}</p> <form action="/" method="POST" enctype="multipart/form-data"> <div> <label for="ck1">Afgahanistan:</label> <input type="checkbox" id="ck1" name="checkbox" value="Afgahanistan"> </div> <div> <label for="ck2">Australia:</label> <input type="checkbox" id="ck2" name="checkbox" value="Australia"> </div> <div> <label for="ck3">Australia:</label> <input type="checkbox" id="ck3" name="checkbox" value="Australia"> </div> <div> <label for="ck4">France:</label> <input type="checkbox" id="ck4" name="checkbox" value="France"> </div> <div> <input type="submit" value="送信"> </div> </form> </body> </html>
<Index2.htmlのコード>
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Hello World</title> </head> <body> <h1>{{ title }}</h1> <p> {% for msg in message %} {{ msg }}<br> {% endfor %} </p> </form> </body> </html>コード
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/23 11:21