I have a search form that lets a user search for items by name. It will display the item values in an editable form so the values can be updated. I also want to to be able to delete that item from the table. How do I select that item from the table and then give the item id to the delete route so it can be deleted?
app.post("/delete", function (req, res) {
let sqlquery = "DELETE FROM `food_item` WHERE id = ?";
let deleterecord = [req.body.id];
db.query(sqlquery, deleterecord, (err, result) => {
if (err) {
return console.error(err.message);
}else{
res.send(" The following food item has been deleted from the database, name: "+ req.body.name +
", typical values: "+ req.body.price + ", unit of the typical value: " + req.body.unit_of_the_typical_value +
", calories: " + req.body.calories + ", carbs: " + req.body.carbs + ", fat: " + req.body.fat +
", protein: " + req.body.protein + ", salt: " + req.body.salt + ", sugar: " + req.body.sugar);
}
});
});
Update form.
<!doctype html>
<html>
<head>
<title>Update foods page</title>
</head>
<body>
<h1> Update foods page </h1>
<h3>Display data related to the food found in the database including
name, typical values, unit of the typical value, calories, carbs, fat, protein, salt and sugar here:</h3>
<form method="POST" action="/topic7/mid-term/foodupdated">
<% availableFood.forEach(function(food_item){ %>
<p><input id="name" type="text" name="name" value= <%= food_item.name %> /></p>
<p><input id="typical_values" type="text" name="typical_values" value= <%= food_item.typical_values %> /></p>
<p><input id="unit_of_the_typical_value" type="text" name="unit_of_the_typical_value" value= <%= food_item.unit_of_the_typical_value %> /></p>
<p><input id="calories" type="text" name="calories" value= <%= food_item.calories %> /></p>
<p><input id="carbs" type="text" name="carbs" value= <%= food_item.carbs %> /></p>
<p><input id="fat" type="text" name="fat" value= <%= food_item.fat %> /></p>
<p><input id="protein" type="text" name="protein" value= <%= food_item.protein %> /></p>
<p><input id="salt" type="text" name="salt" value= <%= food_item.salt %>/></p>
<p><input id="sugar" type="text" name="sugar" value= <%= food_item.sugar %> /></p>
<p><input type="submit" value="Update record" /></p>
<% }) %>
</form>
<form method="POST" action="/topic7/mid-term/delete">
<input type="submit" value="Delete record" />
</form>
</body>
</html>
You should include all your forms in the forEach()
in order to either update or delete an item.
<% availableFood.forEach(function(food_item){ %>
<form method="POST" action="/topic7/mid-term/foodupdated"></form>
<input type="hidden" name="id" value="<%= food_item.id %>" />
<p><input id="name" type="text" name="name" value="<%= food_item.name %>" /></p>
<p><input id="typical_values" type="text" name="typical_values" value="<%= food_item.typical_values %>" /></p>
<p><input id="unit_of_the_typical_value" type="text" name="unit_of_the_typical_value" value="<%= food_item.unit_of_the_typical_value %>" /></p>
<p><input id="calories" type="text" name="calories" value="<%= food_item.calories %>" /></p>
<p><input id="carbs" type="text" name="carbs" value="<%= food_item.carbs %>" /></p>
<p><input id="fat" type="text" name="fat" value="<%= food_item.fat %>" /></p>
<p><input id="protein" type="text" name="protein" value="<%= food_item.protein %>" /></p>
<p><input id="salt" type="text" name="salt" value="<%= food_item.salt %>" /></p>
<p><input id="sugar" type="text" name="sugar" value="<%= food_item.sugar %>" /></p>
<p><input type="submit" value="Update record" /></p>
</form>
<form method="POST" action="/topic7/mid-term/delete">
<input type="hidden" name="id" value="<%= food_item.id %>" />
<input type="submit" value="Delete record" />
</form>
<% }) %>