2011-08-19 19 views
6

2つの送信ボタンがある登録フォームがあります。 1つの送信ボタンは無料のメンバーアカウント用で、もう1つはプレミアムメンバーアカウント用です。複数の送信ボタン

マイフォームコードは、今私は、ユーザーが自由にボタンまたはプレミアム]ボタンをクリックしたかどうかを伝えることができる方法

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

のですか?

例:

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

これは非常にではありません

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

答えて

7

あなたは簡単に送信ボタンに名前を与えることができますスケーラブル。私はサブミット時に隠しフィールドに値を設定するために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' 
+0

なぜdownvote? – AlienWebguy

+0

こんにちはエイリアン、私はdownvoteを作っていない..それは有用なリプレイですが、java/jquery ..を必要とし、次のリプレイは簡単すぎると何かを必要としません..あなたのリプレイのためにとにかく投票アップ..と非常にありがとう多くのあなたの助けのため –

+0

@オサマ:彼の最初の提案は、JavascriptやjQueryを必要としません。 –

8

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'; 
} 
+0

エヴァンさんありがとうございました。それはうまくいくようですが、私はこの考えを考えていました。ありがとうございました –

+0

私はそれをテストしました..うまくいきました、もう一度お世話になりますエヴァン・ムラウスキー –

関連する問題