You aren't making a POST request at all
From one of your comments (confirm message changed for brevity):
<script language="javascript">
<!-- Confirm Dialog Box for deletion -->
function ConfirmChoice() {
answer = confirm("Are you sure?")
if (answer !=0) {
location = "recipe7.php"
}
}
</script>
Assuming that location
means document.location
: This will mean given how it's used in the question, that as soon as a user clicks on anything in the form only one of two things will happen:
- Nothing
- User is redirected to
recipe7.php
Working solution
<script language="javascript">
function ConfirmChoice() {
return confirm("Are you sure?");
}
</script>
<form action='recipe7.php' method='post' onsubmit='return ConfirmChoice();' >
<input type='hidden' name='delete_dish' value='" . $row['dishname'] . "'>
<input type='image' src='images/delete2.png' alt='Submit' name='delete2' value='delete2'>
</form>
The two differences are:
- Make the form submit to where it's supposed to submit
- Use onsubmit to prompt the user, not on click.
If a form onsubmit callback returns falsey - submitting the form is aborted.
Additional points
Comments in javascript
are of the form:
// this is a comment
/* this is a
multiline
comment */
Using html comments (<!-- asdf -->
) in a javascript block is not valid.
Make things work without js by default.
Writing functionality that only works with js enabled when it's not necessary - just adds complexity. Instead make it work without js - and then add whatever js functionality you want (the minimum) to it afterwards.
Sticking to this principle will have two concequences:
- Js logic is simpler (because there's less of it)
- If there's a js error things still work.