Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
<input name="campo[nome]" type="text" value="fulano" />
<input name="campo[" type="email" value="teste@teste.com.br" />](mailto:)
[](mailto:)
[](mailto:)
[$campo = $_POST['campo'];](mailto:)
Vamos supor que eu marquei os dois campos na checkbox o resultado final sera:
[[nome] => fulano](mailto:)
[=> teste@teste.com.br](mailto:)
[[texto] =>](mailto:)
)
Só que no caso deveria me mostrar que TEXTO é igual a X, Y
[Agora se eu fizer sem utilizar](mailto:)**[$_POST['campo']](mailto:)**[e utilizar no lugar apenas](mailto:)**[$_POST](mailto:)**[vai funcionar:](mailto:)
[$campo = $_POST;](mailto:)
[print_r($_POST);](mailto:)
[[cadastro] => Array](mailto:)
[[nome] => fulano](mailto:)
[=> teste@teste.com.br](mailto:)
[[negociacao] => Array](mailto:)
(
[[0] => locacao](mailto:)
[[1] => venda](mailto:)
)
Mas como você pegou ?
$campo = $_POST['campo '];
print_r($campo);
ou assim
**$campo = $_POST;**
**print_r($_POST); **$campo = $_POST['campo'];
print_r($campo);estranho,
se eu não marco a checkbox, para mim retorna:
Array
(
[nome] => fulano
[email] => teste@teste.com.br
)
agora se eu marco a checkbox retorna:
Array
(
[nome] => fulano
[email] => teste@teste.com.bre não vem o array [0] e [1] com seus valores x e y
vou fazer novos testes, devo estar fazendo alguma coisa errada.
Descobri a causa do problema.
Em negrito :wacko:
array_walk($campo, 'limpa_valor');
<?php
function limpa_valor(&$valor){
$valor = trim($valor);
}
if(isset($_POST['teste'])):
$campo = $_POST['campo'];
array_walk($campo, 'limpa_valor');
echo "<pre>";
print_r($campo); // mostra como o array está sendo montado
echo "</pre>";
endif;
?>
<form action="" method="post">
<input name="campo[nome]" type="text" value="fulano teste" />
<input name="campo[email]" type="email" value="teste@teste.com.br" />
<label>X</label>
<input name="campo[texto][]" type="checkbox" value="X" />
<label>Y</label>
<input name="campo[texto][]" type="checkbox" value="Y" />
<button name="teste" type="submit">enviar</button>
</form>Complicado, e nem precisa desta função, limpa_valor, só usar array_map
$array = array_map('trim', $campo);
http://php.net/manual/pt_BR/function.array-map.php
Legal... não sabia dessa, vou dar uma olha, vlw Williams
Testei aqui está ok
Array
(
Checkbox só é enviado se for marcado, diferente de inputs
<input name="campo[texto][]" type="checkbox" checked="checked" value="Y" />