Ir para conteúdo
Fórum Script Brasil
  • 0

Checkbox + Banco de Dados


Nelson Pasquarelli

Pergunta

Boa tarde.

Sou amador em php, e estou com um probleminha, nunca trabalhei com checkbox, procurei no google mais não achei.

Eu precisa ter umas checkbox, onde teriam umas informações que eu iria precisar futuramente, até pra alterar.

<input type="checkbox" name="materias[]" id="materia0" value="0"/>História<br>
<input type="checkbox" name="materias[]" id="materia1" value="1"/>Matemática<br>
<input type="checkbox" name="materias[]" id="materia2" value="2"/>Geografia<br>
<input type="checkbox" name="materias[]" id="materia3" value="3"/>Português

Eu precisava que esse texto "História - Descrição da matéria história." por exemplo, fosse pra algum campo, e que eu pudesse alterar se necessario.

Não sei se esses checkbox eu buscaria de uma tabela.

No final eu ia precisar que mostrasse o conteúdo das checkbox que eu selecionei em forma de texto, usando um echo.

Não sei se deu pra entender. Caso for necessário eu zipo meus arquivos e mando.

Desde já agradeço

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Olha amigo, eu até sei usa check box, mas não consegui entender muito bem o seu objetivo, tente dizer oque exatamente ta querendo fazer.

Exemplo: Sistema de nota de alunos, onde eu verifico se bla bla bla ... :)

para verificar um checkbox em php, precisaria de um switch vo da um exemplo mas não lembro se a sintaxe esta correta

<?php

//verifica se você clico enviar no formulario
 if(isset($_POST['enviar']))
{

switch($variavel)
{
     case 'opcao1':
     {
          //faz o que você quer
     }
     break;

     case 'opcao2':
     {
          //faz o que voce quer
     }
     break;
}
}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

É um cadastro, eu preencho todo o cadastro, suas textfilds e etc, e nele tem os checkbox que contém as matérias.

Escolha as matérias:

[ ] História

[X] Matemática

[ ] Geografia

[X] Português

Ai eu escolho por exemplo "matemática e português" e clico para cadastrar.

Esses checkbox que eu escolhi tem que aparecer pra mim caso eu vá consultar

Matérias escolhidas:

Matématica

Português

E na hora de alterar, vai aparecer as checkbox que eu tinha selecionado

[ ] História

[X] Matemática

[ ] Geografia

[X] Português

Ai faço a alteração.

[ ] História

[ ] Matemática

[X] Geografia

[X] Português

O cadastro alterado:

Matérias escolhidas:

Geografia

Português

Deu pra entender Wilson?

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que entendi, antes de tudo você tem uma tabela de materias ou é diretão mesmo?? Creio eu que voce grave uma materia em casa campo do seu banco se for assim

vamos supor que na sua tabela você gravo "geografia"

para retorna apenas o que foi cadastrado eu faria assim

<input type="checkbox" name="option1" value="<?php echo $variavel; ?>"><?php echo $variavel; ?><br>

Se você só tiver um campo para materias, então você teria que gravar as materias com espaço e depois dar um explode para separar os nome pelo espaço

se você tiver um campo para cada materia, então você usa um while, para poder retornas todas

Desculpa se não é isso que você queira.

Link para o comentário
Compartilhar em outros sites

  • 0

Então, tem uma tabela "db_materias", com campo "id_materia" e "nome_materia".

Mais eu tenho a tabela principal, "db_cadastro", onde tem todos os dados.

Nome: ______________________

Data de Nasc: ___/___/___

Matérias:

[ ] História

[ ] Matemática

[ ] Geografia

[ ] Português

Eu crio um campo individual pra cada matéria dentro da "db_cadastro".

<input type="checkbox" name="option1" value="<?php echo $materia_hist; ?>"><?php echo $materia_hist; ?><br>

<input type="checkbox" name="option2" value="<?php echo $materia_mat; ?>"><?php echo $materia_mat; ?><br>

<input type="checkbox" name="option3" value="<?php echo $materia_geo; ?>"><?php echo $materia_geo; ?><br>

<input type="checkbox" name="option4" value="<?php echo $materia_por; ?>"><?php echo $materia_por; ?><br>

Link para o comentário
Compartilhar em outros sites

  • 0

<?php
    $sql = mysql_query("SELECT * FROM db_materias ORDER BY nome_materias");
       while($linha = mysql_fetch_array($sql)){
        $id_materias = $linha['id_materias'];
        $nome_materias = $linha['nome_materias'];
        $desc_materias = $linha['desc_materias'];
?>

<input type="checkbox" name="materias" value="<?php echo $nome_materias; ?>"><?php echo $nome_materias; ?><br />
<?php
    }
?>

Ai adicionei na página que tem as funções a variável "materias" e adicionei na tabela "db_cadastro" o campo "materias", para receber as informações do checkbox, porém ele adiciona, só que apenas o último check box clicado.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu to postando o código, pra ver se ajuda ter uma luz. :rolleyes:

Formulário

<form id="form1" name="form1" method="post" action="funcao.php?funcao=gravar" enctype="multipart/form-data">
Nome: <input name="aluno_nome" type="text" id="aluno_nome" size="50" />
Curso: <input name="curso" type="text" id="curso" size="50" />
Matérias:
<input name="materia[]" type="checkbox" id="materia[]" value="Geografia">Geografia<br>
<input name="materia[]" type="checkbox" id="materia[]" value="Matematica">Matematica<br>
<input name="materia[]" type="checkbox" id="materia[]" value="Historia">Historia<br>
Valor: <input name="valor" type="text" id="valor" size="50" />
Desconto: <input name="desconto" type="text" id="desconto" size="50" />
Cadastrar Imagem?
<input type="radio" name="enviar_imagem" id="enviar_imagem" onclick="document.form1.arquivo.disabled=false" value="sim" />SIM
<input type="radio" name="enviar_imagem" id="enviar_imagem"  onclick="document.form1.arquivo.disabled=true"  value="não" checked="checked" />NÃO
Imagem
<input name="arquivo" type="file" disabled="disabled" id="arquivo" size="25" />
<input type="submit" name="button" id="button" value="Cadastrar" />
</form>
Página "funcao.php"
<?
$aluno_nome = $_POST['aluno_nome'];
$curso = $_POST['curso'];
$materia = $_POST['materia'];
$valor = $_POST['valor'];
$desconto = $_POST['desconto'];
$enviar_imagem = $_POST['enviar_imagem'];

if($_GET['funcao'] == "gravar" && $enviar_imagem == "sim" && is_file($_FILES['arquivo']['tmp_name'])){
$foto = $_FILES['arquivo']['name'];

$foto = str_replace("á", "a", $foto);
$foto = eregi_replace("[`´~^°]", "", $foto);

    $foto = strtolower($foto);
    if(!eregi("^image\/(jpeg|png|gif|pjpeg|jpg)$", $_FILES['arquivo']['type'])){
        echo "
        <META HTTP-EQUIV=REFRESH CONTENT='0; URL=cadastro.php'>
        &lt;script type=\"text/javascript\">
        alert(\"Formato inválido\");
        </script>
        ";
    }else{
        if(file_exists("fotos/$foto")){
            $a = 1;
            while(file_exists("fotos/[$a]$foto")){
                $a++;
            }
            $foto = "[".$a."]".$foto;
        }
        if(!move_uploaded_file($_FILES['arquivo']['tmp_name'], "fotos/".$foto)){
            echo"
        <META HTTP-EQUIV=REFRESH CONTENT='0; URL=cadastro.php'>
        &lt;script type=\"text/javascript\">
        alert(\"Erro ao enviar o arquivo.\");
        </script>
        ";
            
        }
    
    }
        if(isset($_POST['materia'])) {
            for($i = 0; $i < count($_POST['materia']); $i++) {
                echo "A cor ".$_POST['materia'][$i]." foi selecionada!<br />";
            }
        }
        $sql = mysql_query("INSERT INTO sis_alunos (foto, aluno_nome, curso, materia, valor, desconto) value ('$foto', '$aluno_nome', '$curso', '$materia', '$valor', '$desconto')");
        header("Location: cadastro.php");
}
if($_GET['funcao'] == "gravar" && $enviar_imagem != "sim" && !is_file($_FILES['arquivo']['tmp_name'])){
    $sql = mysql_query("INSERT INTO sis_alunos (aluno_nome, curso, materia, valor, desconto) value ('$aluno_nome', '$curso', '$materia', '$valor', '$desconto')");
        header("Location: cadastro.php");
}

Link para o comentário
Compartilhar em outros sites

  • 0

Você pode colocar um novo campo na tabela ex: ativo;

Na hora do cadastro você coloca se ele esta ativo (0/1) ou (ativo/inativo).

Depois na hora de alterar você utiliza a seguinte informação:

<input name="geografia" type="checkbox" value="1" <?php if ($ativo == 1){ echo "checked";} ?>> // aparece

<input name="historia" type="checkbox" value="0" <?php if ($ativo == 1){ echo "checked";} ?>> // não aparece

<input name="portugues" type="checkbox" value="0" <?php if ($ativo == 1){ echo "checked";} ?>> // não aparece

Qualquer dúvida me manda um email:

raulbfs@gmail.com

Abraços.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...