Jump to content
Fórum Script Brasil
  • 0

Recuperar dados do banco na checkbox


emanuel_pereira

Question

olá amigos, estou desenvolvendo uma aplicação onde tenho uma tabela para atualizar dados quando clicado no botão editar,

o problema é que entre esses dados tenho varias checkbox, e queria que quando o usuario clicasse em editar,

exibisse as checkbox marcadas de acordo com o banco, todos os dados estão vindo preenchidos menos as checkbox,

como resolvo esse problema?

meu codigo:

cadastrar.php

$grava_placa = $_POST['placa'];

$modelo_carro = $_POST['modelo_carro'];

$data_entrada = $_POST['data_entrada'];

$servicos = $_POST['check1']."/".$_POST['check2']."/".$_POST['check3'];

no banco tenho um campo servico, quando é gravado a variavel serviço o campo fica assim: check1/check2/check3

exibe.php

<input type=text" value="<?php echo $dadosExibirCampos['placa] ?>">

<input type="text" value="<?php echo $dadosExibirCampos['modelo_carro'] ?>">

como faço para as checkbox vim preenchidas?

<input id="check1" type="checkbox" name="check1" value="LAVAR" > LAVAR

<input id="check2" type="checkbox" name="check2" value="ASPIRAR" > LAVAR

<input id="check3" type="checkbox" name="check3" value="POLIR" > LAVAR

Obrigado!!!

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Ola amigo

bom como tu usa 3 checkbox numa variavel só, tu vai ter que primeiramente dividir ela, com a função explode tu consegue isso,

tenta assim

$servicos = $recebe_do_banco['servicos']; //a variavel recebe_do_banco é apenas ilustrativa, suponho que tu use outra quando tu buscou os dados do banco e gravou no mysql_fetch_array
$servicos_separados = explode("/",$servicos); //aqui tu usa o separador "/", que a cada barra que ele encontra a função explode separa a variavel
então ficaria um array assim
$servicos_separados[0]; //ganharia o valor do check1
$servicos_separados[1]; //ganharia o valor do check2
$servicos_separados[2]; //ganharia o valor do check3
depois no teu form para mostrar as informações para edição, faça assim
<input id="check1" type="checkbox" name="check1" value="LAVAR" <?php if($servicos_separados[0]; == 'check1'){ echo "checked"; } ?> > LAVAR
<input id="check2" type="checkbox" name="check2" value="ASPIRAR" <?php if($servicos_separados[1]; == 'check2'){ echo "checked"; } ?> > LAVAR
<input id="check3" type="checkbox" name="check3" value="POLIR" <?php if($servicos_separados[2]; == 'check3'){ echo "checked"; } ?> > LAVAR

acredito que assim tu consigas fazer isso.

Link to comment
Share on other sites

  • 0

Olá Nosreve, obrigado por responder, eu já fiz a divisão da variavel como você falou e deu certo:

$servicos_separados = explode("/",$servicos);

quando eu dou um echo para testar, ex:

$servicos_separados[0];

ele está trazendo os dados do banco de acordo com o cadastrado, mais quando eu coloco ela no input não vem marcado nada,

acho que o problema ta aqui:

<input id="check1" type="checkbox" name="check1" value="LAVAR" <?php if($servicos_separados[0] == 'check1'){ echo "checked"; } ?> > LAVAR

Agradeço.

Link to comment
Share on other sites

  • 0

ta quase la, hehe

voce tem que ver o valor que esta gravado no banco, no caso eu coloquei "check1", mas o teu check1 recebe o valor "LAVAR" certo?

então voce tem que fazer o if com o "LAVAR" no lugar do "check1", chegou testar assim?

no caso seria assim

<input id="check1" type="checkbox" name="check1" value="LAVAR" <?php if($servicos_separados[0] == 'LAVAR'){ echo "checked"; } ?> > LAVAR

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.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...