Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Azevedo Lima

[Resolvido] Utilização de checkbox para a seleção de várias opçõe

Recommended Posts

Olá pessoal,

 

Sou iniciante na linguagem e estou com algumas dúvidas sobre o PHP.

 

Estou desenvolvendo um sistema para um Instituto, neste sistema tem uma opção para selecionar os Efeitos Colaterais de cada paciente cadastrado no sistema.

 

Como por exemplo, tenho as opções de Efeitos Colaterais (Febre, Fadiga, Náuseas, Hipertensão, Sonolência, etc..) para cada opção tem um checkbox e eu posso selecionar uma ou mais de uma opção, gostaria de saber como faço para gravar e recuperar essas opções no banco utilizando o PHP e qual o tipo de campo (char, varchar, set, etc) mais adequado para armazenar este tipo de informação no banco de dados MySQL.

 

Se alguém tiver algum exemplo parecido e puder me passar, fico muito grato.

E-mail: rodrigounipac@gmail.com

 

Desde já agradeço a todos pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por partes.

Quais tabelas você tem no banco de dados ?

 

-> paciente

-> efeitosColaterais

-> opcaoEfeitoColateral (oq essa ultima seria ? não entendi o teu texto.. )

 

armazena numa tabela separada das demais coisas, relacionando idPaciente, e idEfeitoColateral...

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie o checkbox dentro de um form, que vai mandar para outra pagina onde vai fazer o INSERT no banco.

voce carrega o valor do check igual carrega de um input.

<form action = "pg2.php" action = "POST">
<input type="checkbox" size="30" name="exemplo">
</form>

 

pg2.php

 

$exemplo = $_POST['exemplo'];
// O $exemplo vai contar  "true" ou "false" ou entao  "on" ou "off" . ou seja, se tiver on é porque foi marcada.
//crie um if para mudar o valor da variavel.

if ($exemplo == "on")
{
$exemplo = "febre";
}
INSERT INTO tabela values ('','$exemplo');  //isso para cod auto_increment

 

só um exemplo da pra fazer de varias formas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Willian,

 

Tenho várias tabelas no banco, efeitos colaterais é apenas um campo de uma dessas tabelas, precisamente da tabela de nome pamidronato. Dentre as opções que posso selecionar para efeitos colaterais estão: Febre, Fadiga, Náuseas, Rinite, Psicose, etc....

 

Como descrevi na pergunta inicial, gostaria de saber como "pegar" essas opções, através da checkbox, e armazená-las no banco de dados, na tabela de nome pamidronato, dentro do campo efetiosColaterais. Lembrando que posso selecionar uma ou mais de uma opção.

 

Espero que tenha entendido.

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um array...

desculpe, é que precisava verificar algumas coisas antes de te indicar oq fazer...

 

bora pra segunda parte então.. mas depois agente volta na primeira..pq não sei tua modelagem, vai suportar isso.

 

<input type="checkbox" name="efeitoColateral[]" value="Febre" />
<input type="checkbox" name="efeitoColateral[]" value="Fadiga" />
<input type="checkbox" name="efeitoColateral[]" value="Náuseas" />
<input type="checkbox" name="efeitoColateral[]" value="Rinite" />
<input type="checkbox" name="efeitoColateral[]" value="Psicose" />
e ai, basta capturar o array: efeitoColateral !

foreach( $_POST['efeitoColateral'] as $eC )
{
   echo $eC.'<br />';
}
Ai vai imprimir todos os efeitos colaterais selecionados..

nessa hora, você troca o echo, pelo insert...

 

Ou não.. ainda preciso entender melhor a tua estrutura de tabelas..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um array...

desculpe, é que precisava verificar algumas coisas antes de te indicar oq fazer...

 

bora pra segunda parte então.. mas depois agente volta na primeira..pq não sei tua modelagem, vai suportar isso.

 

<input type="checkbox" name="efeitoColateral[]" value="Febre" />
<input type="checkbox" name="efeitoColateral[]" value="Fadiga" />
<input type="checkbox" name="efeitoColateral[]" value="Náuseas" />
<input type="checkbox" name="efeitoColateral[]" value="Rinite" />
<input type="checkbox" name="efeitoColateral[]" value="Psicose" />
e ai, basta capturar o array: efeitoColateral !

foreach( $_POST['efeitoColateral'] as $eC )
{
   echo $eC.'<br />';
}
Ai vai imprimir todos os efeitos colaterais selecionados..

nessa hora, você troca o echo, pelo insert...

 

Ou não.. ainda preciso entender melhor a tua estrutura de tabelas..

Beleza Willian,

Me tira uma dúvida, o campo efeitosColaterais no banco de dados pode ser do tipo varchar? Ou teria um tipo melhor, por exemplo enum?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai depende doque você quer guardar nele..

se for armazenar a string inteira: "Febre"... ai você coloca varchar..

se você for ter um tabelão, com vários campos.. do tipo:

`Febre` = sim/nao ou 1/0 ... ai você faria com enum..

agora, se for criar uma nova tabela, só para mostrar os efeitosColaterais..

 

ai você poderia além dessas possibilidades, usar o tipo INT !

 

Já que assim, você poderia ter uma tabela para listar os efeitos colaterais.. e relacionaria pelo ID na nova tabela.

Vixi.. compliquei de mais ? vai fazendo e postando ai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai depende doque você quer guardar nele..

se for armazenar a string inteira: "Febre"... ai você coloca varchar..

se você for ter um tabelão, com vários campos.. do tipo:

`Febre` = sim/nao ou 1/0 ... ai você faria com enum..

agora, se for criar uma nova tabela, só para mostrar os efeitosColaterais..

 

ai você poderia além dessas possibilidades, usar o tipo INT !

 

Já que assim, você poderia ter uma tabela para listar os efeitos colaterais.. e relacionaria pelo ID na nova tabela.

Vixi.. compliquei de mais ? vai fazendo e postando ai..

A questão é que já tenho muitas tabelas neste banco, não queria cria mais uma. Este campo só vai servir para mostrar os efeitos e mais nada, acho que criar uma outra tabela só pra isso seria perca de tempo.

Seria mais ou mesmo como você ter um cempo para armazenar as linguagens de programação (PHP, Java, Pascal, VB, etc..) que um programador domina.

O que você acha, devo criar uma tabela só para os efeitos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai depende da tua aplicação..

eu tentei mostrar todas as formas de se fazer ^^

 

A modelagem mais robusta seria com uma nova tabela.. mas ela pode ser totalmente desnecessária.

Já conseguiu capturar os dados que você qr ? onde pretende inserir eles ?

 

Só você pode decidir ^^

acho que você quer fazer isso aqui ne?!

se você for ter um tabelão, com vários campos.. do tipo:

`Febre` = sim/nao ou 1/0,

`Fadiga` = sim/nao ou 1/0 ... ai você faria com enum..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai depende da tua aplicação..

eu tentei mostrar todas as formas de se fazer ^^

 

A modelagem mais robusta seria com uma nova tabela.. mas ela pode ser totalmente desnecessária.

Já conseguiu capturar os dados que você qr ? onde pretende inserir eles ?

 

Só você pode decidir ^^

acho que você quer fazer isso aqui ne?!

se você for ter um tabelão, com vários campos.. do tipo:

`Febre` = sim/nao ou 1/0,

`Fadiga` = sim/nao ou 1/0 ... ai você faria com enum..

Com certeza, acho que uma nova tabela é totalmente desnecessária, esses dados só serão utilizados para exibição em relatórios e na própria tela.

Acho que o tipo de campo enum seria mais apropriado para esse campo.

 

Valeu pela dicas Willian, foram de grande utilidade mesmo.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.