hugoes 0 Denunciar post Postado Julho 21, 2005 Galera, é a primeira vez que faço um cadastro que utilize campos checkbox. Eu consigo inserir no banco qndo marco as opções que quero, mas qndo ponho uma transação, dá erro :P , o result retorna falso. Vou mostrar como estou fazendo, se alguém tiver outra sujestão, por favor, aguardo: Esse é o formulário dos meus checks <form> <table width="666" border="0"> <tr> <td width="109"><div align="center"> <input type="checkbox" value="CERTIDAO DE NASCIMENTO" name="op1" <? if ("checked") {$_SESSION['op1'] = "CERTIDAO DE NASCIMENTO";} else {$_SESSION['op1'] = '';}?> > <b>Cerdidão de Nascimento</b></div></td> <td width="101"><div align="center"> <input type="checkbox" value="HISTORICO ESCOLAR" name="op2" <? if ("checked") {$_SESSION['op2'] = "HISTORICO ESCOLAR";} else {$_SESSION['op2'] = '';}?>> <b> Histórico Escolar</b></div></td> <td width="154"><div align="center"> <input type="checkbox" value="CARTEIRA DE IDENTIDAD" name="op3" <? if ("checked") {$_SESSION['op3'] = "CARTEIRA DE IDENTIDADE";} else {$_SESSION['op3'] = '';}?>> <b> Carteira de Identidade</b></div></td> <td width="137"><div align="center"> <input type="checkbox" value="COMPROVANTE DE RESIDENCIA" name="op4" <? if ("checked") {$_SESSION['op4']= "COMPROVANTE DE RESIDENCIA";} else {$_SESSION['op4'] = '';}?>> <b> Comprovante Residência</b></div></td> <td width="141"><div align="center"> <input type="checkbox" value="DOC. DE TRANSFERENCIA" name="op5" <? if ("checked") {$_SESSION['op5'] = "DOC. DE TRANSFERENCIA";} else {$_SESSION['op5'] = '';}?>> <b> Doc. de Transferência</b></div></td> </tr> </table> </form> Essa é a pag q recebe os post's PHP [*] [*] if ($_POST['op1']) [*] $_SESSION['op1'] = $_POST['op1']; [*] else $_SESSION['op1'] = ''; [*] [*] if ($_POST['op2']) [*] $_SESSION['op2'] = $_POST['op2']; [*] else $_SESSION['op2'] = ''; [*] 0 [*] if ($_POST['op3']) [*] $_SESSION['op3'] = $_POST['op3']; [*] else $_SESSION['op3'] = ''; [*] [*] if ($_POST['op4']) [*] $_SESSION['op4'] = $_POST['op4']; [*] else $_SESSION['op4'] = ''; [*] [*] if ($_POST['op5']) [*] $_SESSION['op5'] = $_POST['op5']; [*] else $_SESSION['op5'] = ''; [*] [*] if ($_POST['txt_outros']) [*] $_SESSION['txt_outros'] = $_POST['txt_outros']; [*] else $_SESSION['txt_outros'] = '';*/ [*] [*]$op = $_SESSION['op1'].",".$_SESSION['op2'].",".$_SESSION['op3'].",".$_SESSION['op4'].",".$_SESSION['op5'].",".strtoupper($_SESSION['txt_outros']); [*] [*]$sql_aluno_docs = "insert into documentos_apresentados "; [*]$sql_aluno_docs.= "(id_aluno, nm_documento) "; [*]$sql_aluno_docs.= "values (".$id.", '".$op."')"; [*] [*]$result= @pg_query($conn, $sql_aluno_docs); [*] [*] Acho que não tá legal (até pq minha transação barra eheheh). Queria saber como proceder da melhor maneira. Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Julho 21, 2005 Cara, não entendi essa condição: if ("checked")Q q tu tentou fazer? Compartilhar este post Link para o post Compartilhar em outros sites
hugoes 0 Denunciar post Postado Julho 21, 2005 Poisé, foi como eu disse, é a primeira vez que faço, então pensei dessa forma: se "tiver_marcado" var=alguma_coisa. Até que insere no banco, quais campos eu selecionar, mas na transação "barra".Queria saber a melhor forma de se fazer. Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Julho 21, 2005 Então no form você não vai usar nada de PHP, só que você tem colocar algo dentro da tag form, você colocou apenas <form>, deveria colocar algo como: <form action="pag.php" method="POST">, daí tu verifica se foi selecionado o checkbox da mesma forma que você ve se uma var existe: if ($_POST['op1']) { ... É isso? http://forum.imasters.com.br/public/style_emoticons/default/kiss.gif Compartilhar este post Link para o post Compartilhar em outros sites
hugoes 0 Denunciar post Postado Julho 21, 2005 Bom, ok. Primeiro, o <form> foi só p resumir, na verdade eu coloco sim o action. Na pag q recebe esses valores dos checks, já tô fazendo essa condição, mas agora acontece o seguinte: pro campos que eu seleciono, beleza. Agora, pros que não são selecionados, aparecem warnnings informando variáveis não definidas. Se eu não por a transação, aparecem os warning, mas insere no banco. Quando uso a transação, não ocorre o commit.Como contornar esse problema dos campos q não são escolhidos? Compartilhar este post Link para o post Compartilhar em outros sites
rafaelrj.br 0 Denunciar post Postado Julho 22, 2005 Cara, PHP é um linguagem totalmente dinâmica... então se quisesse colocar mais um checkbox, você teria que alterar seu código PHP para adicionar: PHP [*]<? [*]if ( $_POST['optN'] ) {} ?> ? Quando é necessário usar checkbox em PHP, o nome dos checks deve ser definido como "qualquernome[]", onde "qualquernome" é realmente qualquer nome, porém deve seguir de colchetes [] representando um array ( que será preenchido dinamicamente de acordo com o click nos checks ). vou postar um exemplo onde você pega o resultado dos checks, a partir daí você faz o que quiser com os dados... form.html <form action="form.php" method="POST"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td><input name="checks[]" type="checkbox" value="check1" /></td> <td>Check1</td> </tr> <tr> <td><input name="checks[]" type="checkbox" value="check2" /></td> <td>Check2</td> </tr> <tr> <td><input name="checks[]" type="checkbox" value="check3" /></td> <td>Check3</td> </tr> <tr> <td><input name="checks[]" type="checkbox" value="check4" /></td> <td>Check4</td> </tr> <tr> <td> </td> <td><input name="btnOK" type="submit" value="Verificar" /></td> </tr> </table> </form> form.php PHP [*]<? [*]if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) [*]{ [*] /* como é um array, você pode fazer um loop para verificar quais foram [*] checados... */ [*] foreach ( $_POST['checks'] as $indice => $valor ) [*] echo "O " . $valor . " foi checado<br />"; [*] [*] /* você pode também usar a funcao implode() do PHP */ [*] $dadosSelecionados = implode(', ', $_POST['checks']); [*] echo "<br />"; [*] echo "Os dados selecionados foram: " . $dadosSelecionados; [*]} [*]?> [*] qualquer dúvida, me mande um email.... rafaelrj.br@programador.net vlw! Compartilhar este post Link para o post Compartilhar em outros sites
hugoes 0 Denunciar post Postado Julho 25, 2005 Pow cara, ainda tô com o mesmo problema. Estou enviando por post os valores normalmente à outra página (a q fará os inserts). No entanto, os check's que não marco, são vistos como "não definidos", dando erro no meu cadastro. Por exemplo, se marco todas as opções, a inserção é um sucesso.Gostaria de saber como resolver essa bronca. Compartilhar este post Link para o post Compartilhar em outros sites