<form action='#' method='post' onclick=' ConfirmChoice();
return false;' style='display:inline-block;'>
<input type='hidden' name='delete_dish' value='" . $row['dishname'] . "'>
<input type='image' src='images/delete2.png' alt='Submit' name='delete2' value='delete2'>
</form>
Everytime I $_POST
on another file, it says Notice: Undefined index: delete_dish
But, when I remove onclick=' ConfirmChoice(); return false;
and put FILENAME.php
instead of #, it works.
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:
recipe7.php
<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:
If a form onsubmit callback returns falsey - submitting the form is aborted.
are of the form:
// this is a comment
/* this is a
multiline
comment */
Using html comments (<!-- asdf -->
) in a javascript block is not valid.
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:
change
onclick=' ConfirmChoice(); return false;'
to
onclick='return ConfirmChoice();'
Try this one....
<form name='myform' action='recipe7.php' method='post' onclick=' ConfirmChoice();
return false;' style='display:inline-block;'>
function ConfirmChoice()
{
var r = confirm("Are you sure?");
if(r == true)
{
document.myform.submit();
return true;
}
else
{
// do something
return false;
}
}