Ich möchte Client eine andere Seite zeigen, nachdem Daten von der vorherigen Seite gesammelt wurden. Aber ich habe Probleme, die neue URL auf der Serverseite umzuleiten. Hier ist meine Logik:Golang: Wie auf eine URL umleiten
- senden Benutzereingabe mit POST-Aktion zum Server;
- Server Funktion saveChoice() ausführen, um Benutzereingaben in eine Datenbank zu speichern;
- Nachdem Benutzereingaben gespeichert wurden, sendet der Server eine neue URL an den Client.
- Als der Kunde die neue URL GET, liest Server die Datenbank und die Daten gerettet werden aus
Und ich bin auf Schritt 3 stecken (hier ist ein Beispiel für die Strömung):
type Stuff struct{
List []string
}
func checkcheck(w http.ResponseWriter, r *http.Request) {
sinfo := Stuff{
List: some_slice
}
t, err := template.New("").Parse(tpl_ds)
checkErr(err)
err = r.ParseForm()
checkErr(err)
err = t.Execute(w, sinfo)
checkErr(err)
if r.Method == "POST" {
saveChoice(r.Form["choices"])
/* step 3: make user open another URL */
}
}
Und hier ist die Vorlage:
<html>
<script>
$(function() {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
data: $('form').serialize(),
});
});
});
</script>
<body>
<form method="POST">
{{range .List}}
<input type="checkbox" name="choices" value="{{.}}"> <span>{{.}}</span><br>
{{end}}
<input type="submit" value="Submit">
</form>
</body>
</html>
Darf ich wissen, wie ich auf eine neue Seite umleiten?
p.s. Wenn ich URL auf Knopf setze, dann läuft der Server nicht saveChoice()
Danke!
Eigentlich der effektive Teil ist hinzuzufügen, wenn r.Method == "GET" wie Aruna sagte, die den Fehler der Umleitung 2 Seiten verhindert – Kyle