avcintra 0 Denunciar post Postado Abril 23, 2009 Olá a Todos, To a dois dias tentando resolver a questão abaixo, já pesquisei em tudo quanto é lugar mas não achei nada que faça funcionar. To começando no PHP e to com dificuldade no script abaixo. Nele tenho duas funções: - montaArray() = essa função pega todos os valores checados dos selects e coloca ele em uma string com os valores separados por virgula(,). Essa função ta tudo certo, está funcionando. - desmontaArray() = essa função deveria pegar a string, separar os valores entre as virgulas e se o valor é igual ao valor do item da função, se for ele coloca como checado. Essas duas rotinas eu to usando para que quando o usuário for fazer um cadastro, caso algum dado esteja errado o sistema retorna para o formulário com o alerta e todos os campos preenchidos conforme ele tinha tentado enviar, ou seja, os checkboxs que ele ticou voltam ticados conforme ele deixou. Não consigo de jeito nenhum retornar os checkbox ticados. ALGUEM PODE ME AJUDAR? desde já obrigado <html> <body> <?php function montaArray($permissoes){ $count = count($permissoes); for($i=0; $i<$count; $i++) { if($i==$count - 1){ $virgula = null; }else{ $virgula = ","; } $varPermissoes .= $permissoes[$i]. $virgula; } echo $varPermissoes; } $varPermissoes = montaArray($_POST["permissoes"]); function desmontaArray($string, $item){ $array = explode(',', $string); sort($array); reset($array); while (list($chave, $valor) = each($array)) { if($item==$valor){ return $valor; } } } ?> <form action="teste.php" method="post"> <input type="checkbox" name="permissoes[]" <?php if(desmontaArray($varPermissoes,2)==2){ echo "checked=\"checked\" ";}?> value="2" /> <input type="checkbox" name="permissoes[]" <?php if(desmontaArray($varPermissoes,3)==3){ echo "checked=\"checked\" ";}?> value="3" /> <input type="checkbox" name="permissoes[]" <?php if(desmontaArray($varPermissoes,4)==4){ echo "checked=\"checked\" ";}?> value="4" /> <input type="checkbox" name="permissoes[]" <?php if(desmontaArray($varPermissoes,8)==8){ echo "checked=\"checked\" ";}?> value="8" /> <input type="submit" value="ok" /> </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Desbravador 0 Denunciar post Postado Abril 23, 2009 Cara dá um print nesse valor $varPermissoes e fala o que vem. Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Abril 23, 2009 Como assim??? você quer verificar se tal variável tem algum valor??? use isset($variavel)... agora se quer que a variável tenha um determinado valor, como por ex. só numeros, use ER: $er = "[0-9]\."; $verifica = preg_match($er, $variavel); Desculpe se entendi mal... Compartilhar este post Link para o post Compartilhar em outros sites
avcintra 0 Denunciar post Postado Abril 23, 2009 Cara dá um print nesse valor $varPermissoes e fala o que vem. não aparece nada, parece que a variaval está vazia.... você sabe o que pode ser? obrigado Compartilhar este post Link para o post Compartilhar em outros sites
avcintra 0 Denunciar post Postado Abril 24, 2009 Fala Galera, consegui resolver o problema... obrigado pelas dicas. abs Compartilhar este post Link para o post Compartilhar em outros sites