Jump to content
thiamatte

editar checkbox vindos do banco de dados

Recommended Posts

pesquisei muito e não consegui encontrar a solução para o meu problema, alguém poderia me ajudar.

tenho um BD carro, BD opcionais e um BD (cod_carro e cod_opcional).

cadastro todos os opcionais e quando vou cadastrar os carros carrega os checkbox vindos do BD e gravo até aí tudo normal e funcionando, o problema é quando eu quero editar o carro, não consigo trazer ticado os opcionais já cadastrados no BD, segue o código:

 

$Opcional = $conn->query ("SELECT * FROM opcional ORDER BY opcional ASC");

$CarroOpcional = $conn->query ("SELECT * FROM carro_opcional, opcional WHERE carro_opcional.cod_carro = '$cod_carro' AND carro_opcional.cod_opcional = opcional.cod_opcional");


$row_CarroOpcional = $CarroOpcional->fetch( PDO::FETCH_ASSOC );

 

<?
while ($row_Opcional = $Opcional->fetch(PDO::FETCH_ASSOC)) {
     foreach($row_CarroOpcional as $row => $cod_opcional) {
          if ($cod_opcional === $row_Opcional['cod_opcional']) {
               $opcional_selecionado = "checked";
          }
     } ?>
<input name="cod_opcional[]" type="checkbox" id="cod_opcional" value="<? echo $row_Opcional['cod_opcional']; ?>" <? echo $opcional_selecionado; ?>><? echo $row_Opcional['opcional']; ?>
<? } ?>

 

Desde já agradeço a ajuda

Share this post


Link to post
Share on other sites

tentou fazer assim:

 

<input name="cod_opcional[]" type="checkbox" id="cod_opcional" <? echo $opcional_selecionado; ?>><? echo $row_Opcional['opcional']; ?>

 

Share this post


Link to post
Share on other sites
36 minutos atrás, Santos_2015 disse:

tentou fazer assim:

 


<input name="cod_opcional[]" type="checkbox" id="cod_opcional" <? echo $opcional_selecionado; ?>><? echo $row_Opcional['opcional']; ?>

 

Infelizmente não funcionou, ele traz todos os opcionais ticados e não somente os que estão cadastrados para o carro.

 

acho que o erro esta por aqui mas já tentei de tudo e não consegui

while ($row_Opcional = $Opcional->fetch(PDO::FETCH_ASSOC)) {
                    foreach($row_CarroOpcional as $row => $cod_opcional) {
                        if ($cod_opcional === $row_Opcional['cod_opcional']) {
                            $opcional_selecionado = "checked";
                        }
                    }

}

Share this post


Link to post
Share on other sites

você já imprimiu a variável $row_Opcional['cod_opcional'] ? o campo é do tipo inteiro ou varchar?

 

Share this post


Link to post
Share on other sites
21 minutos atrás, Santos_2015 disse:

você já imprimiu a variável $row_Opcional['cod_opcional'] ? o campo é do tipo inteiro ou varchar?

 

todos os campos envolvidos são do tipo inteiro, pois são só códigos

Share this post


Link to post
Share on other sites
5 horas atrás, thiamatte disse:

todos os campos envolvidos são do tipo inteiro, pois são só códigos

 

quando você imprimi a variável $row_Opcional['cod_opcional', o que mostrou?

Share this post


Link to post
Share on other sites

os códigos dos opcionais, corretamente! O problema é que ou tica todos os não tica nenhum opcional. Eu gostaria que na edição dos carros os opcionais já cadastrados na primeira vez, viessem cadastrados

 

Share this post


Link to post
Share on other sites
22 horas atrás, thiamatte disse:

os códigos dos opcionais, corretamente! O problema é que ou tica todos os não tica nenhum opcional. Eu gostaria que na edição dos carros os opcionais já cadastrados na primeira vez, viessem cadastrados

 

 

então é questão de lógica, pegar informação do banco e fazer um if,

valor 1 (marcado),

valor 2 (desmarcado)

if($row_Opcional['cod_opcional']  == 1]){
	$opcional_selecionado = "checked";
}else{
	$opcional_selecionado = "";
}

 

Share this post


Link to post
Share on other sites

              <td>
                <?
                $colunas = 3;
                $num = ceil($Opcional->rowCount()/$colunas);//quantidade de registros por coluna
                $i = 0;
                while ($row_Opcional = $Opcional->fetch(PDO::FETCH_ASSOC)) {
                    while ($row_CarroOpcional = $CarroOpcional->fetch(PDO::FETCH_ASSOC)) {
                    foreach($row_CarroOpcional as $row) {
                        //echo $row;
                        echo $row_CarroOpcional[cod_opcional];
                        if ($row == $row_Opcional[cod_opcional]) {
                            $opcional_selecionado = "checked";
                        } else {
                            $opcional_selecionado = "";
                        }
                    }}
                    if( $i==$num ) {
                        $i=0;
                    } ?>
                    <div class="coluna">
                        <input name="cod_opcional[]" type="checkbox" id="cod_opcional" value="<? echo $row_Opcional['cod_opcional']; ?>" <? echo $opcional_selecionado; ?>><? echo $row_Opcional['opcional']; ?>
                    </div>
                    <?
                    $i++;
                } ?>
              </td>

 

 

nada dá certo!

Share this post


Link to post
Share on other sites

tem coisa redundante no seu código,posta aqui o código completo e a estrutura das tabelas, ou passa pro  

e-mail (sidneytec@live.com).

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Camilavip
      Oi, como consigo fazer uma página de erro ou redirecionamento ou aviso, caso alguém clique em um cadastro que já não existe ou não tenha?
      localhost/clientes/12/ricardo No exemplo acima eu clico no cliente com esse id 12 e abre os dados dele, mas se eu o excluir mas estiver com o link e colocar no navegador, ele abre a página, sem os dados dele, mas abre. Eu queria se caso não tivesse mais o id cadastrado, abrisse algo como nenhum cadastro encontrado ou existente.
    • By mamotinho
      Olá, gostaria de sabe como posso fazer uma contagem regressiva apartir de um registro em meu banco de dados eu tentei montar um código da seguinte forma:

       
      <? $DateGET = date('m/d/Y H:i A', strtotime($result->DateDiscount)); ?> <script> var valueDate = <?=$DateGET?>; var end = new Date(valueDate); var _second = 1000; var _minute = _second * 60; var _hour = _minute * 60; var _day = _hour * 24; var timer; function showRemaining() { var now = new Date(); var distance = end - now; if (distance < 0) { clearInterval(timer); document.getElementById("countdown").innerHTML = "EXPIRED!"; return; } var days = Math.floor(distance / _day); var hours = Math.floor((distance % _day) / _hour); var minutes = Math.floor((distance % _hour) / _minute); var seconds = Math.floor((distance % _minute) / _second); document.getElementById("countdown").innerHTML = "<span class='n_date day' id='days'>" + days + "</span><span class='date'>일</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time hour' id='hrs'>" + hours + "</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time minute' id='minus'>" + minutes + "</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time second' id='secs'>" + seconds + "</span>"; } timer = setInterval(showRemaining, 1000); </script> Mais infelizmente não passou a data registrada no banco de dados, alguém teria ideia de como posso ta fazendo.
    • By emmanuelsiqueira30
      Pessoal preciso de uma ajudinha aqui se alguém puder me ajudar fico muito agradecido.
      O problema é o seguinte gostaria de editar dados de um formulário com checkbox usando html e php.
      Desde já agradeço por toda ajuda.
    • By liniker.o
      Boa tarde pessoal!
      Estou com um problema em meu código quando coloco uma referencia de fonte a mesma não carrega, quando faça o mesmo procedimento local colocando os caminhos de pasta funciona normalmente.
      Será que alguém poderia me ajudar?
      Segue o código.
      <html> <head> <title>Minha pagina</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <!-- Se não declarar charset por meta, envie um header de igual valor --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <?php //Carregar imagem tamanho da imagen = 515x76 $img = ImageCreateFromJPEG("base.jpg"); //Definir cor $cor1 = imagecolorallocate($img, 0, 0, 0); $cor2 = imagecolorallocate($img, 0, 0, 0); // carregar fonte... $fonte1 = 'https://ff.static.1001fonts.net/r/o/roboto-condensed.light.ttf'; $fonte2 = 'https://ff.static.1001fonts.net/r/o/roboto-condensed.light.ttf'; //Escrever nome $txtNome = $_POST['nome']; $txtFuncao = $_POST['func']; $txtEmail = $_POST['email']; $txtDDD = "+55 ".$_POST['telefone']; // IMAGEM, TAMANHO_FONTE, 0, POSICAO X, posicao Y, TEXTO_COR, ARQ_FONTE, TEXTO imagettftext($img, 32, 0, 250, 100, $cor1, $fonte1, $txtNome); imagettftext($img, 18, 0, 250, 125, $cor1, $fonte2, $txtFuncao); imagettftext($img, 18, 0, 250, 150, $cor1, $fonte2, $txtEmail); imagettftext($img, 18, 0, 250, 180, $cor1, $fonte2, $txtDDD); //Header e output header('Content-type: image/jpeg'); imagejpeg($img,"Assinatura - ".$txtNome.".jpg"); imagedestroy($img); header('Location: Assinatura - '.$txtNome.'.jpg'); ?>  
    • By gersonab
      Boa tarde a todos, tenho um sistema de upload de arquivos que funciona perfeitamente, agora eu gostaria que estes arquivos fossem armazenados em nuvem, não no servidor, poderiam indicar um tutorial ou como proceder.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.