O PHP não converte automaticamente diversas informações de checkbox com o mesmo nome em um array como o ASP faz, o que traz alguns inconvenientes de uso. Mas ainda existe uma solução, que é usar javascript para fazer o pré-processamento. Várias caixas de seleção com o mesmo nome ainda existem na forma de matrizes em JavaScript, portanto, antes de enviar o formulário, você pode usar JavaScript para combinar as informações nas caixas de seleção em uma matriz de caracteres e atribuí-las aos elementos ocultos no formulário e, em seguida, use PHP A função explode analisa esse array, para que as informações da caixa de seleção possam ser transferidas. Abaixo estão exemplos.
Suponha que exista tal formulário:
<form name="form1" id="form1" method="post" action="myphp.php" onSubmit="return Checker()">
<input type="checkbox" nome="item" valor="1">1<br>
<input type="checkbox" nome="item" valor="2">2<br>
<input type="checkbox" nome="item" valor="3">3<br>
<input type="checkbox" nome="item" valor="4">4<br>
<tipo de entrada = "nome oculto" = "itens" valor = "">
<input type="enviar" valor="Enviar">
</form>
Este formulário possui quatro caixas de seleção cujos nomes são todos itens. Quando o usuário clicar no botão Enviar, a função Checker será chamada, e se o Checker retornar verdadeiro, o formulário será enviado. formulário não será enviado. A função Checker aqui é a função de pré-processamento que queremos escrever. Adicione o seguinte javascript na seção de cabeçalho do HTML:
<script language="javascript">
<!--
função Verificador()
{
form1.items.value = "";
if ( !form1.item.length ) // Existe apenas uma caixa de seleção, form1.item.length = indefinido
{
if (form1.items.checked)
form1.items.value = form1.item.value;
}
outro
{
for (i = 0; i <form1.item.length; i++)
{
if (form1.item(i).checked) // Há uma caixa marcada na caixa de seleção {
form1.items.value = form1.item(i).value;
para (j = i + 1; j <form1.item.length; j++)
{
if (form1.item(j).verificado)
{
form1.items.value += " "; //Use espaços como separadores form1.items.value += form1.item(j).value;
}
}
quebrar;
}
}
}
retornar verdadeiro;
}
-->
</script>
Use
esta instrução em myphp.php:
$items = explode(" ", $HTTP_POST_VARS["items"]);
Essas opções podem ser separadas em arrays. Ressalta-se que o valor da opção não pode conter delimitadores (aqui, espaços).