-1
このオプションを返すと値が不正になります。たとえば、n = "Arnold、Robert | ID:1"をオプションとして送信すると、Webページに表示されますが、ユーザーが送信をクリックすると、「Arnold」のみがFlaskサーバーに送信されます。 ID値を取得しようとしています。HTMLフォームはオプション値の一部をFlaskに送り返すだけです
フォームからオプションの値全体を取得する方法や、IDを文字列から取得する方法を知っている人はいますか?
ここではHTMLが
<h2>Donors</h2>
<form method="POST" action="/display_donor">
<select name="selected_donor">
{% for n in donors %}
<option value={{n}}>{{n}}</option>
{% endfor %}
</select>
<br />
<br><input type="submit" value="View donor"/>
</form>
ここでは、関連するフラスコ機能だだ
@app.route('/display_donor', methods=['POST'])
def display_donor():
temp_id = request.form['selected_donor']
print "temp_id"
print temp_id
final_id = re.sub('[^0-9]','', temp_id)
print "final_id"
print final_id
display_value = 1
cursor = g.conn.execute("SELECT name,donor_id FROM donors")
donors = []
for result in cursor:
temp_string = result['name'] + " | ID: " +result['donor_id']
donors.append(temp_string)
# can also be accessed using result[0]
cursor.close()
print "this"
print final_id
#Returns a specific instance of transaction as specified by user
cursor = g.conn.execute("SELECT * FROM donors D WHERE D.donor_id='%s'" % final_id)
values = []
for result in cursor:
values.append(result['donor_id'])
values.append(result['name'])
values.append(result['donor_type'])
cursor.close()
#denote attribute names
attribute = []
attribute.append('donor_id')
attribute.append('name')
attribute.append('donor_type')
return render_template("donors.html",attribute=attribute,values=values,donors=donors,display_value=display_value)