2017-03-12 2 views
0

Ich habe die anderen Fragen gelesen, kann aber immer noch nicht herausfinden, was los ist. Ich möchte einen versteckten Wert von einer Seite übergeben: Dashboard zu einem anderen: seegoodsrec Hoffentlich kann jemand helfen. Ich verwende dieses Formular einen versteckten Wert zu erhalten:Flask: Versteckte Werte von einer Seite zur anderen

class customerIDForm(Form): 
    customerID = HiddenField() 

Diese dann in meinem Armaturenbrett verwendet wird:

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

Ich fühle mich bis hier ist es in Ordnung. Aber ich kann den HTML-Code nicht herausfinden. Innerhalb einer Tabelle möchte ich die Taste, um meine Seite seegoodsrec die einreichen zu tun:

{% 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 %} 

Wert j[0] ist eine Variable, abhängig von der Zeile in der Tabelle, die Sie klicken, sollte die Taste, um den Wert zu Seite seegoodsrec einreichen. Dies ist, wie seegoodsrec eingerichtet ist:

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

Die Seite seegoodsrec nicht den Wert customerID angezeigt werden, die von j[0] kommen. Jede Eingabe wird sehr geschätzt, danke! Ich habe versucht, einfach auf seegoodsrec:

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

EDIT

Sorry, wie ein Schmerz zu sein, aber ich kann einfach nicht den richtigen Weg finden, um es zu tun. Vielleicht ein Screenshots von meiner Seite hilft: Screenshot from my page

Also im Grunde, was ich tun muß: Wenn ich View Details klicken ich nur die Details für Kunden in der Reihe klickte ich sehen will (abhängig von der ID). Details anzeigen bringt mich auf eine neue Seite namens seegoodsrec. Also, meine Idee war, eine versteckte Werte auf Seite seegoodsrec, die die Kundennummer ist, zu übergeben. Dieser Wert könnte ich dann verwenden, um nur gute Empfänger für diesen Kunden anzuzeigen.

Vielen Dank im Voraus für Ihre Hilfe.

+0

Warten Sie, haben Sie von Sitzungen und Cookies gehört? –

+0

Ja, ich habe .. in der Tat verwende ich sie .. aber nicht ganz sicher, ob ich das nur zwischen zwei Seiten tun kann .. ich verstehe, dass Sitzung bezieht sich auf die globale Benutzersitzung, aber die customerID ich herausfinden möchte kann zwischen beiden Seiten wechseln, je nachdem, wo ich in die Tabelle klicke. –

+0

@MarkWellings Kannst du vielleicht deinen Anwendungsfall dafür beschreiben, auf diese Weise wäre es einfacher, eine Lösung vorzuschlagen. – Jonathan

Antwort

0

Wenn das jemand hilft. Hier ist, wie ich meine Auswahl tun:

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

In Kolben:

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

mySQL8 die customerID aufgreift und wählt die entsprechenden Warenempfänger.

0

Sie machen es hier falsch.

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

Auch GET und POST sind unterschiedlich. Bitte beschränken Sie sie auf eins oder schreiben Sie separate Handler.

+0

form.customerID.data = customerID gib mir einen Fehler. –

+0

Es ist unklar, mit was Sie es zuweisen möchten. –

+0

Jeder Kunde hat eine ID, die beim Einfügen in die DB vergeben wird. Mit der in html versteckten Eingabe versuche ich, die Variable in j [0] an meine Seite seegoodsrec weiterzuleiten. Von dort möchte ich nur die Warenempfänger mit der ID aus dem Dashboard html (dritter Code in meinem Beitrag) zeigen. –

Verwandte Themen