Jump to content
Fórum Script Brasil
  • 0

Checkbox + Banco de Dados


Nelson Pasquarelli
 Share

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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:

[email protected]

Abraços.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.9k
    • Total Posts
      648.8k
×
×
  • Create New...