2017-04-30 16 views
-1

私はフラスコ、HTML、Jinjaに新しいですし、あるテンプレートから別のテンプレートに値を渡す際に問題があります。 Iveは他の多くのページを見ており、誰も全く同じ問題を抱えていませんでした。私は選択したメニューをドロップダウンしたページと、一度選択したユーザーをリダイレクトする送信ボタンを持っています。私の問題は、その選択肢を次のページのフォームに渡す方法がわからないことです。以下は、私のHTMLフォームのコードです:フラスコ1つのHTMLページから別のものに引数を渡す

<form method="POST" action="search"> 
      <div class="form-group" align="center"> 
       <select class="vertical-menu"> 
        {% for friend in strFriendList %} 
         <option name="friendToPay" value="{{ friend }}">{{ friend }}</option> 
        {% endfor %} 
       </select> 

       <a href="{{ url_for('payment') }}" class="btn-primary"> Submit</a> 
      </div> 
</form> 

されており、次の私の検索および支払い機能:

@app.route("/search") 
def search(): 
    if "email" not in session: 
    return redirect(url_for("login")) 
    else: 
    friendslist1 = Friendship.query.filter_by(username=session["username"]).all() 
    friendslist2 = Friendship.query.filter_by(friendUserName=session["username"]) 
    strFriendList = [""] 
    for friend in friendslist1: 
     strFriendList.append(friend.friendUserName) 
    for friend in friendslist2: 
     strFriendList.append(str(friend.username)) 
    form = SelectFriendForm() 
    return render_template("search.html",strFriendList=strFriendList,form=form) 

@app.route("/payment",methods=['GET', 'POST']) 
def payment(personToPay): 
    form = PaymentForm() 
    if request.method == "POST": 
     if form.validate() == False: 
      return render_template("payment.html", form=form) 
     else: 
      return render_template("search.html") 
     # else: 
     #  # Query the database and deposit the amount and subtract from giver 

    return render_template("payment.html") 

私は決済機能に送信された検索機能で選択された友人を取得したいです。どんな助けでも大歓迎です、ありがとう!

答えて

1

HTMLフォームから始まります。フォームのaction属性は、送信先のフォームを指示します。次に、ユーザーの送信ボタンを含めることができます。

<form method="POST" action="payment"> 
    <div class="form-group" align="center"> 
     <select name="friendToPay" class="vertical-menu"> 
      {% for friend in strFriendList %} 
       <option value="{{ friend }}">{{ friend }}</option> 
      {% endfor %} 
     </select> 

     <input type="submit" value="Submit" class="btn-primary" /> 
    </div> 
</form> 

次に、あなたがこのような何かでそれを処理することができます

@app.route("/payment", methods=['POST']) 
def payment(): 
    if request.form.get('friendToPay'): 
     # Run your logic here 

    return render_template("payment.html") 

私はあなたが約求めている問題について、明確化のためにフォームの検証を削除しました。

+0

ありがとう、私はこれを試して、あなたに最高の答えを与える場合は – mks

+0

タグを使用してタグを使用すると、ページが実際の値を取得する方法や理由を理解できませんが、これは動作します。ありがとうございます – mks

関連する問題