After this post, you got this:
We have to enhance our Javascript file and have to add a new function "show" to the go-code.
I also adjust the code a little bit, so we can save and receive a message if the storing was successful.
Our modified HTMLConstants + the template
// Parse the HTMLTemplate, despite it is not neccesary yet.
var adminPanelTemplate = template.Must(template.New("adminPanelHTML").Parse(adminPanelHTML))
var saveTemplate = template.Must(template.New("saveHTML").Parse(saveHTML))
var entriesTemplate = template.Must(template.New("entriesHTML").Parse(entriesHTML))
const saveHTML = `
Saved to Datastore!
`
const entriesHTML = `{{range .}}
{{.Date}} {{.Course}}: {{.Name}} costs {{.Price}}$
{{end}}`
By the way we added to the adminPanelHTML a new form, so we can submit the button "save"
After that we add the new http.HandlFunc("/show", show) and the new show-function.
func show(w http.ResponseWriter, r *http.Request){
allMeals := getAllEntries(r)
if err := entriesTemplate.Execute(w,allMeals);err != nil{
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
Finally the Jquery-Code. It is very similiar to the function before, but we don't pass data via the ajax request.
$( document ).ready(function() {
$("#saveMeal").submit(function(event){
event.preventDefault();
var formData = $("#saveMeal").serializeArray();
var URL = $("#saveMeal").attr("action");
$.post(
URL,
formData,
function(data) {
$('#result').html($(data).filter("#content"));
});
});
$("#showMeal").submit(function(event){
event.preventDefault();
var URL = $("#showMeal").attr("action");
$.post(
URL,
function(data){
$('#result').html($(data).filter("#content"));
});
});
});
So thats all for this evening. Tommorow I will show you, how to delete some entries.
P.S. Checkout my repository on Bitbucket for the latest code! https://bitbucket.org/loose11/mycanteen

No comments:
Post a Comment