Osama Tarek
Osama Tarek

Reputation: 297

Multiple submit buttons

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

Answers (2)

SeanCannon
SeanCannon

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

Evan Mulawski
Evan Mulawski

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

Related Questions