Múltiplos botões "submit" em um formulário
Leia em menos de um minuto
A maioria das pessoas não sabe que é possível adicionar mais de um botão do tipo "submit". Mas se você precisa fazer algo como o Wordpress, pode ser uma mão na roda!
Eu uso uma função em PHP que me ajuda bastante quando preciso fazer algo parecido.
<?php
function get_post_action($name)
{
$params = func_get_args();
foreach ($params as $name) {
if (isset($_POST[$name])) {
return $name;
}
}
}
?>
Ela é muito simples, mas extremamente útil. Basta passar os nomes possíveis dos botões e a função retornará qual a ação escolhida. Para usá-la, você pode fazer algo assim:
<?php
switch (get_post_action('save', 'submit', 'publish')) {
case 'save':
//save article and keep editing
break;
case 'submit':
//save article and redirect
break;
case 'publish':
//publish article and redirect
break;
default:
//no action sent
}
?>
No seu HTML não precisa de muito. Apenas coloque o atributo name
com os valores que você irá verificar.
<form method="post" action="form.php">
<p>
<input type="submit" name="save" value="Salvar e continuar editando" />
<input type="submit" name="submit" value="Salvar" />
<input type="submit" name="publish" value="Publicar" />
</p>
</form>
E por favor, pare de mudar o atributo action
do formulário através de Javascript.