I have a list of names and some buttons with product names. When one of the buttons is clicked the information of the list is sent to a PHP script, but I can’t hit the submit button to send its value. How is it done? I boiled my code down to the following:
The sending page:
<html> <form action="buy.php" method="post"> <select name="name"> <option>John</option> <option>Henry</option> <select> <input id='submit' type='submit' name='Tea' value='Tea'> <input id='submit' type='submit' name='Coffee' value='Coffee'> </form> </html>
The receiving page: buy.php
<?php $name = $_POST['name']; $purchase = $_POST['submit']; //here some SQL database magic happens ?>
Everything except sending the submit button value works flawlessly.
Advertisement
Answer
The button names are not submit, so the php $_POST['submit']
value is not set. As in isset($_POST['submit'])
evaluates to false.
<html> <form action="" method="post"> <input type="hidden" name="action" value="submit" /> <select name="name"> <option>John</option> <option>Henry</option> <select> <!-- make sure all html elements that have an ID are unique and name the buttons submit --> <input id="tea-submit" type="submit" name="submit" value="Tea"> <input id="coffee-submit" type="submit" name="submit" value="Coffee"> </form> </html> <?php if (isset($_POST['action'])) { echo '<br />The ' . $_POST['submit'] . ' submit button was pressed<br />'; } ?>