2016-04-13 17 views
-1

Bu seçeneği döndürdüğümde kötü bir değer alıyorum. Örneğin, n = "Arnold, Robert | ID: 1" seçeneğini bir seçenek olarak gönderdiğimde, web sayfasında görünür, ancak kullanıcı göndermeyi tıkladığında, yalnızca "Arnold", Flask Sunucum'a gönderilir. Kimlik değerini çıkarmaya çalışıyorum.HTML formu yalnızca seçenek değerinin bir kısmını geri gönderir Flask

Herkes, formdaki tüm seçenek değerini veya dizeyi kimliğin dışına almak için başka bir yolun nasıl alınacağını biliyor mu?

İşte Burada 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> 

var

@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) 

cevap

0

ilgili Matara fonksiyonu var doğrusu tek bir dize daha ayrı değerler göndererek bu sorunu giderdik. Bu beni tüm ayrıştırmadan kurtardı ve şu değerleri yazmam için bana izin verdi:

<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>