Reputation: 297
I have a registration form with two submit buttons. One submit button is for a free member account, and the other is for a premium member account.
My form code is
<form action="post.php" method="post">
<input type="text" name="name" />
<input type="text" name="mail" />
//submit buttons
<input type="submit" value="signup for free member" />
<input type="submit" value="signup for premium member" />
</form>
if($_POST['name'] and $_POST['mail']){
$user_name = $_POST['name'];
$mail = $_POST['mail']
//How i can know he is preimum or free ?
}
Now how can I tell whether the user clicked on the free button or the premium button?
example:
if($_POST['free_member']){
$member = 'free';
}else{
$member = 'premium';
}
Upvotes: 6
Views: 3607
Reputation: 77956
You could easily give the submit buttons a name:
<input name="submit" type="submit" value="signup for free member" />
<input name="submit" type="submit" value="signup for premium member" />
Then your post will show like this:
var_dump($_POST['submit']); // 'signup for premium member'
This isn't very scalable. I'd recommend using javascript to populate a hidden field on submit. Example:
HTML:
<!-- Include JQuery -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
<input type="hidden" id="program_type" name="program_type" value="" />
<input class="submit" type="submit" value="signup for free member" data-program-type="free" />
<input class="submit" type="submit" value="signup for premium member" data-program-type="premium" />
JQuery:
$('.submit').click(function(e){
e.preventDefault(); // Stall form submit
$('#program_type').val($(this).data('program-type'));
$(this).parents('form:first').submit(); // Submit form
});
PHP:
var_dump($_POST['program_type']); // 'free' or 'premium'
Upvotes: 7
Reputation: 55334
HTML
<input type="submit" value="signup for free member" name="signup_free"/>
<input type="submit" value="signup for premium member" name="signup_premium"/>
PHP
if($_POST['signup_free'])
{
$member = 'free';
}
elseif($_POST['signup_premium'])
{
$member = 'premium';
}
Upvotes: 8