Несколько кнопок отправки - PullRequest
6 голосов
/ 20 августа 2011

У меня есть форма регистрации с двумя кнопками отправки. Одна кнопка отправки предназначена для бесплатной учетной записи участника, а другая - для учетной записи премиум-участника.

Код моей формы

<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 ?
    }

Теперь, как я могу узнать, нажал ли пользователь на бесплатную кнопку или премиум-кнопку?

пример:

if($_POST['free_member']){
  $member = 'free';
}else{
  $member = 'premium';
}

Ответы [ 2 ]

8 голосов
/ 20 августа 2011

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';
}
7 голосов
/ 20 августа 2011

Вы можете легко дать кнопкам отправки название:

<input name="submit" type="submit" value="signup for free member" />
<input name="submit" type="submit" value="signup for premium member" />

Тогда ваше сообщение будет выглядеть так:

var_dump($_POST['submit']); // 'signup for premium member'

Это не очень масштабируемо. Я бы порекомендовал использовать JavaScript для заполнения скрытого поля при отправке. Пример:

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'
...