2017-03-12 4 views
0

私は他の質問を読んだが、何が間違っているか把握することはできません。 ダッシュボードを別のページに隠す:seegoodsrec 誰かが助けてくれることを願っています。これはその後、私のダッシュボードに使用されているフラスコ:あるページから別のページに隠された値

class customerIDForm(Form): 
    customerID = HiddenField() 

@app.route('/dashboard/', methods=['GET', 'POST']) 
@login_required 
def dashboard(): 
    form = customerIDForm() 
    customerID = form.customerID.data 
    return render_template("dashboard.html",form = form) 

は、私はそれがいいのよここまで感じる。私は隠された値を取得するためにこのフォームを使用しています しかし、私はhtmlコードを理解することはできません。私はボタンが私のページseegoodsrecに提出をしたい表内:

{% for t in TOPIC_DICT["goodsrec"] %} 
<td> 
<form method=post action="/seegoodsrec/"> 
<input type="hidden" name="customerID" value="{{j[0]}}" 
    <a href="{{t[3]}}"><button type="submit" value=Save class="btn btn-primary"style= 
" margin-top: 5px; margin-bottom: 5px; height:44px; margin-right: 15px"> 
<span class="glyphicon glyphicon-search"></span> {{t[2]}}</button></a> 
</form> 
</td> 
{% endfor %} 

j[0]クリックしたテーブル内の行に応じて、ボタンがページseegoodsrecに値を提出する必要があり、変数です。これが設定されている方法seegoodsrecです:

@app.route('/seegoodsrec/', methods=['GET', 'POST']) 
@login_required 
def seegoodsrec(): 
    form = customerIDForm() 
    customerID = request.form.get('customerID') 
    return render_template("seegoodsrec.html",form = form) 

ページseegoodsrecj[0]から来る値の得意先を表示しません。入力は非常に感謝しています、ありがとう! 、

<p>test{{customerID}}</p> 

EDIT

申し訳ありませんが、このような痛みであることを、私はちょうどそれを行うための正しい方法を把握することはできません:私は単にseegoodsrecにしようとしていました。たぶん私のページからのスクリーンショットが役立ちます: Screenshot from my page

をだから、基本的に、私は何をする必要があるか:私は唯一の私がクリックした行(IDに依存する)に顧客の詳細を見たいView Detailsをクリックします。詳細を表示すると、seegoodsrecという新しいページに移動します。だから、私の考えは、顧客IDであるページseegoodsrecに隠れた値を渡すことでした。この値を使用して、その顧客の良好な受信者のみを表示することができます。

ご協力いただきありがとうございます。

+0

待ち時間、セッションやCookieについて聞いたことがありますか? –

+0

はい、私は..実際に私はそれらを使用しています..しかし、私は2ページの間にそれを行うことができるかどうかはかなり確信していません。私の理解は、セッションはグローバルユーザーセッションを指しますが、 –

+0

@MarkWellingsおそらく解決策を提案する方が簡単な場合に、このユースケースを説明できますか? – Jonathan

答えて

0

これは誰にでも役立ちます。フラスコ中で

<form method=post action="/seegoodsrec/">      
<a href="{{t[3]}}"><button type="submit" name="customerID" 
value="{{j[0]|int}}" class="btn btn-primary" style=" margin-top: 5px; 
margin-bottom: 5px; height:44px; margin-right: 15px"> 
<span class="glyphicon glyphicon-search"></span> {{t[2]}} 
</button> 
</a> 
</form> 

:得意先をピックアップし、それぞれの商品のレシーバを選択mySQL8

def seegoodsrec(): 
customerID = request.form.get('customerID') 
mySQL3 = SelectGoodsrec(session['ID']) #displayed goodsreceiver with user ID 
mySQL8 = SelectGoodsrecSEE(customerID) 
c, conn = connection() 

x = c.execute("SELECT * FROM goodsrec WHERE Gr_Cm_id = (%s)", 
         [str(customerID)]) 
if int(x) < 1: 
    flash("Please, create a goods receiver for this customer") 

ここでは、私は私の選択を行う方法です。

0

ここでは間違っています。

@app.route('/dashboard/', methods=['GET', 'POST']) 
@login_required 
def dashboard(): 
    form = customerIDForm() 
    customerID = form.customerID.data 
    ^~~~~~~~~ 
    This doesn't do anything. Consider doing it reverse? 
    return render_template("dashboard.html",form = form) 

また、GETとPOSTが異なります。それらを1つに制限するか、別のハンドラを記述してください。

+0

form.customerID.data = customerIDエラーが発生しました。 –

+0

あなたが割り当てようとしているものが不明です。 –

+0

すべての顧客は、DBに挿入するときに割り当てられるIDを持っています。入力がhtmlで隠されていると、j [0]の変数をマイページseegoodsrecに渡そうとしています。そこからは、ダッシュボードhtml(私のポストの3番目のコード)から取得したIDを持つ商品レシーバを表示するだけです。 –

関連する問題