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 inousi
      Quando faço login, não reconhece user/email já registrado anteriormente no bd.
      Scripts para registro e login de usuário:
      - registro usuário.php
      - server.php
      - login.php
      O de registro de usuário está ok. Faz o registro no bd (mysql).
      O de login resulta na mensagem: "Wrong username/password". (linha 79 do server.php) - apesar de ter sido confirmado o registro e conferida sua gravação no bd (users.php)
       
      script server.php
      <?php session_start(); // initializing variables $user_name = ""; $user_email = ""; $errors = array(); // connect to the database $db_sys = mysqli_connect('localhost', 'root', '', 'sys'); // REGISTER USER if (isset($_POST['user_reg'])) { // receive all input values from the form $user_name = mysqli_real_escape_string($db_sys, $_POST['user_name']); $user_email = mysqli_real_escape_string($db_sys, $_POST['user_email']); $user_pass1 = mysqli_real_escape_string($db_sys, $_POST['user_pass1']); $user_pass2 = mysqli_real_escape_string($db_sys, $_POST['user_pass2']); // form validation: ensure that the form is correctly filled ... // by adding (array_push()) corresponding error unto $errors array if (empty($user_name)) { array_push($errors, "Username is required"); } if (empty($user_email)) { array_push($errors, "Email is required"); } if (empty($user_pass1)) { array_push($errors, "Password is required"); } if ($user_pass1 != $user_pass2) { array_push($errors, "The two passwords do not match"); } // check the database a user does not already exist with the same username and/or email $user_check_query = "SELECT * FROM users WHERE user_name='$user_name' OR user_email='$user_email' LIMIT 1"; $result = mysqli_query($db_sysgo, $user_check_query); $user = mysqli_fetch_assoc($result); if ($user) { // if user exists if ($user['user_name'] === $user_name) { array_push($errors, "Username already exists"); } if ($user['user_email'] === $user_email) { array_push($errors, "email already exists"); } } // Register user if there are no errors if (count($errors) == 0) { //encrypt the password $user_pass = md5($user_pass1); $query = "INSERT INTO users (user_name, user_email, user_pass) VALUES('$user_name', '$user_email', '$user_pass')"; mysqli_query($db_sys, $query); $_SESSION['user_name'] = $user_name; $_SESSION['success'] = "You are now logged in"; header('location: index.php'); } } // LOGIN USER if (isset($_POST['login'])) { $user_name = mysqli_real_escape_string($db_sys, $_POST['user_name']); $user_pass = mysqli_real_escape_string($db_sys, $_POST['user_pass']); if (empty($user_name)) { array_push($errors, "Username is required"); } if (empty($user_pass)) { array_push($errors, "Password is required"); } if (count($errors) == 0) { $user_pass = md5($user_pass); $query = "SELECT * FROM users WHERE user_name='$user_name' AND user_pass='$user_pass'"; $results = mysqli_query($db_sys, $query); if (mysqli_num_rows($results) == 1) { $_SESSION['user_name'] = $user_name; $_SESSION['success'] = "You are now logged in"; header('location: index.php'); }else { //AQUI ESTÁ O ERRO QUE MOSTRA array_push($errors, "Wrong username/password"); } } } ?> <?php if (count($errors) > 0) : ?> <div class="error"> <?php foreach ($errors as $error) : ?> <p><?php echo $error ?></p> <?php endforeach ?> </div> <?php endif ?>  
      login.php
      <?php include('server.php') ?> <!DOCTYPE html> <html> <head> <title>Login</title> <link rel="stylesheet" type="text/css" href="user_style.css"> </head> <body> <div class="header"> <h2>Login</h2> </div> <form method="post" action="login.php"> <?php include('errors.php'); ?> <div class="input-group"> <label>Username</label> <input type="text" name="user_name" > </div> <div class="input-group"> <label>Password</label> <input type="password" name="user_pass"> </div> <div class="input-group"> <button type="submit" class="btn" name="login">Login</button> </div> <p> Not yet a member? <a href="reg_user.php">Sign up</a> </p> </form> </body> </html>  
    • By Sapinn
      Salveee! Certo a dúvida que trarei aqui agora é bem complexa e eu sinceramente não sei se é realmente possível mas acho que não custa nada perguntar.
       
      Fiz um site de envio de textos, onde o aluno envia um texto e o professor corrigi até ai blz, queria saber como eu poderia fazer pra quando o professor marcar uma palavra aprece-se uma caixa de dialogo onde ele colocaria, por exemplo, a correção da palavra ou alguma explicação e essas informações seriam enviadas para o banco de dados quando o aluno acessa a correção desse texto e o ele passa-se  mouse por cima dessa palavra apareceria a correção em um balãozinho. Como exemplo desse comportamento que acabei de citar temos o google documents que faz algo desse jeito. Queria saber se isso pode ser possível sem exigir muito código ou muita coisa. Desde já agradeço.
    • By vmmh
      Alguma alma caridosa que me possa ajudar ?
      há dias que ando com este problema e não consigo resolver. Ficaria eternamente grato se alguém pudesse ajudar
       
      o codigo abaixo em localhost funciona na perfeição , mas em produção , no lado do servidor , nada... HTTP error 500.
      o pedido que estou a fazer está noutro dominio com porta 81 e no meu dominio uso certificado de segurança. Será por aí?
      de qualquer forma o wsdl está   aqui:
       
       
      $client = new SoapClient('https://dekrainspecoes.pt/acp/PROD_CustomUI_ACP_Member_Validation_WS.WSDL');
      $result = $client->QueryByNumCartao(array('N_Cartao' => "705684011673122085"));
      if (!empty($result->QueryByNumCartao_Output->Cartao_Ativo)) {
       
          echo 'The userId : '.$result->QueryByNumCartao_Output ->Pessoa_ID;
      }
       
      $JSON = json_encode($result);
    • By tiagodolf
      Bem, quero que o PHP mostre o resultado de um questionario, porem no começo ja apresenta erro. Sou leigo em PHP.


      CODE HTML:



      CODE PHP:


      ERRO APRESENTAD:

    • By gersonab
      bom dia.
      estou com um problema aqui, quando vou fazer update de uma página com dados vindos do banco os select option mostra os dados corretamente porém os value capturados não estão corretos, um exemplo, se for de cidades vem no value somente o primeiro nome da cidade enquanto na exibição do nome vem completo, logo, quando faço o update grava somente o primeiro nome, pois esta se dividindo e criando campos.
      <select class="form-control" name="cidade"> <option value="">-- Selecionar --</option> <?php $curc4 = $pdo->query("SELECT * FROM comarca ORDER BY comarc asc"); while ($lic4 = $curc4->fetch(PDO::FETCH_ASSOC)) { echo "<option value=".$lic4['comarc']." ".($cidade == $lic4['comarc'] ? "selected":"")." >".$lic4['comarc']."</option>"; } ?> </select> como é mostrado no console:
      <option value="ANGRA" dos="" reis="">ANGRA DOS REIS</option> desde já agradeço ajuda
×

Important Information

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