Ken
Ken

Reputation: 29

PHP Form multiple buttons

I have a form with 2 buttons, that depending on which is selected will either be deleted or edited from the database. Those are each individual pages using SQL statements (questionedit and questiondelete). However, when i press a button, nothing happens...Any Ideas

Here is my javascript

function SelectedButton(button)
{
    if(button == 'edit')
    {
        document.testedit_questionform.action ="testedit_questionedit.php";
    }else if(button == 'delete'){
        document.testedit_questionform.action ="testedit_questiondelete.php";
    }
    document.forms[].testedit_questionform.submit();
}

Here is my form (being echoed from a loop)

<form name="testedit_questionform" action="SelectedButton" method="POST"> 
    <span class="grid_11 prefix_1" id="" >
Question:<input type="text" name="QuestionText" style="width:588px; margin-left:10px;" value="$row[0]"/>
    <input type="button" value="Edit" name="Operation" onclick="submitForm('edit')" />
    <input type="button" value="Delete" name="Operation" onclick="submitForm('delete')" />
    <input type="hidden" name="QId" value="$row[3]" /><br />
</form>

Upvotes: 1

Views: 677

Answers (3)

Dion
Dion

Reputation: 3335

It would be easier to make one PHP file, and buttons with different names like this:

<form method="post" action="actions.php">
<input type="submit" name="action1" value="Action 1" />
<input type="submit" name="action2" value="Action 2" />
[...]

And the file actions.php:

if(isset($_POST["action1"])) {
     // action 1
}
elseif(isset($_POST["action2"])) {
    // action 2
}

Upvotes: 1

MatuDuke
MatuDuke

Reputation: 5010

First of all, your function should be named submitForm

function submitForm(button) {
  if(button == 'edit') {
    document.testedit_questionform.action ="testedit_questionedit.php";
  } else if(button == 'delete') {
    document.testedit_questionform.action ="testedit_questiondelete.php";
  }

  document.testedit_questionform.submit();
}

And then, call submit method from your form.

EDIT:

An alternative to calling forms is: document.forms['FORM_NAME'].submit()

Upvotes: 2

Niet the Dark Absol
Niet the Dark Absol

Reputation: 324620

Look at how you access the form to call submit(). Now look at how you access the form to change the action. One of them is clearly wrong.

Upvotes: 1

Related Questions