2016-04-13 14 views
-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) 

答えて

0

私は1つの文字列として値を送信するのではなく、別々にすることで、この問題を修正しました。これは私をすべての解析から取り除き、そのような値を印刷することを許可しました:

<h2>Donors</h2>          
<form method="POST" action="/display_donor"> 
    <select name="selected_donor"> 
    {% for n in donor_ids %} 
     <option value={{n}}>{{ donor_names[loop.index0] }} | ID: {{n}}</option> 
    {% endfor %} 
    </select> 
    <br /> 
    <br><input type="submit" value="View donor"/> 
</form> 
関連する問題