(1)
(20)
20 de outubro de 2008
Por Fábio Antonio Izidio Ferreira
Uma das dúvidas mais freqüentes entre programadores que estão iniciando com PHP é quanto à manipulação de dados vindos de campos do tipo "checkbox".
Campos do tipo “checkbox” podem assumir apenas dois valores: on value (marcado) ou no value (desmarcado). Também é possível utilizar vários “checkbox” com o mesmo nome, para isso devemos adicionar "[]" no final do nome do “checkbox”, pois só assim o PHP irá interpretar como um Array.
O exemplo abaixo mostra como é simples receber e manipular dados vindos de “checkbox” com PHP.
Na página “formulario.html” temos o formulário HTML contendo alguns “checkbox” e um botão de ”submit”, no qual quando acionado irá enviar as informações para a página “recebe_formulario.php” utilizando o método POST (podemos utilizar também o método GET, para isso, basta substituir POST por GET).
<html>
<head>
<title>Manipulando Checkbox com PHP<title>
</head>
<body>
<form name="form1" method="POST" action=”recebe_formulario.php”>
<input name="nacionalidade" type="checkbox" value=" Brasileiro "> Sou Brasileiro!<br><br>
<b>Cores preferidas:</b><br><br>
<input name="cor[]" type="checkbox" value="Azul">Azul<br>
<input name="cor[]" type="checkbox" value="Amarelo">Amarelo<br>
<input name="cor[]" type="checkbox" value="Branco">Branco<br>
<input name="cor[]" type="checkbox" value="Cinza">Cinza<br>
<input name="cor[]" type="checkbox" value="Preto">Preto<br>
<input name="cor[]" type="checkbox" value="Vermelho">Vermelho<br>
<input type=”submit” value=”Enviar Formulário” />
</form>
</body>
</html>
Na página "recebe_formulario.php" podemos receber os dados dos "checkbox" com o mesmo nome de duas maneiras:
Primeira forma:
<?php
// Verifica se alguma cor foi selecionada
if(isset($_POST[“cor”])) {
// Faz um loop no Array de checkbox
// A função count retorna a quantidade de checkbox selecionado
for($i = 0; $i < count($_POST[“cor”]); $i++) {
echo “A cor “.$_POST[“cor”][$i].” foi selecionada!<br />”;
}
} else {
echo “Nenhuma cor foi selecionada!”
}
?>
Segunda forma:
<?php
// Verifica se alguma cor foi selecionada
if(isset($_POST[“cor”])) {
// Faz um loop no Array de checkbox
foreach($_POST[“cor”] as $key => $value) {
echo “A cor “. $value.” foi selecionada!<br />”;
}
} else {
echo { “Nenhuma cor foi selecionada!”
}
?>
Já o checkbox com nome único, basta verificar se foi selecionado:
<?php
// Verifica se o checkbox com nome nacionalidade foi selecionado
if(isset($_POST[“nacionalidade”])) {
echo “Você é brasileiro!!”;
} else {
echo “Você não é brasileiro!!”;
}
?>
Comentários
(1)
(20)