2011-08-19 107 views
6

我有两个提交按钮的注册表单。一个提交按钮用于免费会员帐户,另一个则用于高级会员帐户。多个提交按钮

我的表单代码是

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

回答

7

您可以轻松地给提交按钮的名称:

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

为什么downvote? – AlienWebguy

+0

你好外星人,我没有做downvote ..它是有用的重播,但需要java/jquery ..和下一个重播是太容易,不需要任何东西..反正票为您的重播..并非常感谢你多为你的帮助 –

+0

@Osama:他的第一个建议不需要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

我测试了它..它工作正常,再次感谢你Evan Mulawski –