2011-08-19 28 views
6

Tengo un formulario de registro con dos botones de envío. Un botón de envío es para una cuenta de miembro gratuita, y el otro es para una cuenta de miembro premium.Múltiples botones de envío

Mi código de formulario es

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

Ahora, ¿cómo puedo saber si el usuario hace clic en el botón libre o el botón de la prima?

ejemplo:

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

Respuesta

7

Desde aquí se puede dar a los botones de presentar un nombre:

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

A continuación, el mensaje se mostrará así:

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

Esto no es muy escalable Recomiendo usar javascript para rellenar un campo oculto en el envío. Ejemplo:

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

Por qué la downvote? – AlienWebguy

+0

Hola alienígena, no hice un voto negativo ... es una repetición útil, pero requiere java/jquery ... y la siguiente repetición es demasiado fácil y no requiere nada ... de todos modos vote por tu repetición ... y muchas gracias mucho por su ayuda –

+0

@Osama: Su primera sugerencia no requiere Javascript o 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

Gracias Evan ... parece que va a funcionar bien, estaba pensando en esta idea, muchas gracias –

+0

lo probé ... está funcionando bien, gracias de nuevo Evan Mulawski –

Cuestiones relacionadas