Ich versuche, eine Löschoption für einige Elemente in einer Liste zu machen. Die Art, wie ich das mache, ist, jedem Gegenstand in der Liste einen Knopf oder einen Link irgendeiner Art zu geben, der POST benutzt, um die _id (von mongodb) zu senden. Wie Sie im Code unten sehen können (req.body.id), versuche ich die ID aus der Anfrage zu bekommen. Die Anfrage hat jedoch keine ID, weil ich nicht weiß, wie das geht, ohne ein Formular und ein Eingabefeld zu verwenden.POST ohne ein Formular in Jade und node.js verwenden?
Ich habe einige Möglichkeiten gesehen, es mit Javascript in PHP zu tun. Aber gibt es eine spezifischere Art von jade und node.js?
router.post("/deleteitem", function(req,res) {
var db = req.db;
var collection = db.get("itemcollection");
id = req.body.id;
collection.remove({
"_id": id
}, function (err, removed) {
if (err) {
res.send("Error");
}
else {
res.redirect("editlist");
}
});
});
Danke für die Hilfe.
Edit:
Client-side:
extends layout
block content
h1.
Items
ul
each item, i in editlist
li
p #{item.name} costs #{item.price}
button#btnSubmit(type="button",method="post",action="/deleteitem") Delete
a(href="/") Back to start
Der Knopfteil, wenn auch nicht sehr relevant ist. Erstens bin ich mir nicht sicher, ob es so geht. Zweitens habe ich die ID in keiner Weise aufgenommen. Ich habe gerade experimentiert.
Eine Möglichkeit, die ich wahrscheinlich tun könnte, ist, die ID in die URL als Parameter aufzunehmen. Aber das scheint etwas komplizierter als nur POST zu verwenden und die ID in die Anfrage aufzunehmen.
Wo ist Ihr clientseitiger Code? –
@IsmailRBOUH Hinzugefügt. Der Button-Teil ist allerdings nicht sehr relevant, da ich mir nicht sicher bin, ob es so geht. Ich habe gerade experimentiert. – Smebbs
Haben Sie versucht, die Daten im Abfrageparameter zu senden? – notionquest