Select e Update

3 respostas
php
H

Aqui tenho meus dados cadastrados:

Estou tentando programar o botão “alterar”, conforme abaixo:

<?php
     require 'Database.php';
     
     $idFamiliar = null;
     if(!empty($_GET['idFamiliar']))
     {
         $idFamiliar = $_REQUEST['idFamiliar'];
     }
     if(null == $idFamiliar)
     {
         header("Location: listaFamiliar.php");
     }
     if(!empty($_POST))
     {
         $nameError = null;
         $dataError = null;
         
         $nomeFamiliar = $_POST['nomeFamiliar'];
         $dataNasc = $_POST['dataNasc'];
         
         $valid = true;
         
         if(empty($nomeFamiliar))
         {
             $nameError = 'Informar o nome';
             $valid = false;
         }
         if(empty($dataNasc))
         {
             $dataError = 'Informar a data';
             $valid = false;
         }
         if($valid)
         {
             $pdo = Database::connect();
             $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
             $sql = "UPDATE tb_familiar SET nomeFamiliar = ?, dataNasc = ? WHERE idFamiliar = ?";
             $q = $pdo->prepare($sql);
             $q->execute(array($nomeFamiliar, $dataNasc, $idFamiliar));
             Database::disconnect();
             header("Location: listaFamiliar.php");
         }
         else
         {
             $pdo = Database::connect();
             $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
             $sql = "SELECT * FROM tb_familiar WHERE idFamiliar = ?";
             $q = $pdo->prepare($sql);
             $q->execute(array($idFamiliar));
             $data = $q->fetch(PDO::FETCH_ASSOC);
             $idFamiliar = $data['idFamiliar'];
             $nomeFamiliar = $data['nomeFamiliar'];
             $dataNasc = $data['dataNasc'];
             Database::disconnect();
         }
     }
 ?>
 <html>
     <head>
         <meta charset="UTF-8">
         <title></title>
         <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" media="screen">
         <script src="bootstrap/js/bootstrap.min.js"></script>
     </head>
     <body>
          <div class="navbar navbar-default navbar-static-top" role="navigation">
             <div class="container">
                 <div class="navbar-header">
                     <a class="navbar-brand" href="index.php">HOME</a>
                     <a class="navbar-brand" href="listaFamiliar.php">FAMILIAR</a>
                 </div>
             </div>
         </div>
         <form class="form-inline" action="alterarFamiliar.php?idFamiliar=<?php echo $idFamiliar ?>" method="post">
             <div class="panel panel-default" style="margin-left: 150px; margin-right: 100px; margin-top: 0;">
                 <div class="panel-heading" style="color: navy;"><b>EDITAR FAMILIAR</b></div>
                 <div class="form-inline" style="margin-top: 10px; margin-left: 15px">
                     <div class="control-group">
                         <label class="control-label">ID</label>
                         <div class="controls">
                             <input name="nomeFamiliar" type="text" placeholder="nome" value="<?php echo !empty($nomeFamiliar)?$idFamiliar:''; ?>">
                         </div>
                     </div>
                     <div class="control-group <?php echo !empty($nameError)? 'error':'';?>">
                         <label class="control-label">Nome Familiar</label>
                         <div class="controls">
                             <input name="nomeFamiliar" type="text" placeholder="nome" value="<?php echo !empty($nomeFamiliar)?$nomeFamiliar:''; ?>">
                             <?php if(!empty($nameError)): ?>
                             <span class="help-block"><?php echo $nameError; ?></span>
                             <?php endif; ?>
                         </div>
                     </div>
                     <div class="control-group <?php echo !empty($dataError)? 'error':'';?>">
                         <label class="control-label">Data Nasc</label>
                         <div class="controls">
                             <input name="dataNasc" type="text" placeholder="data" value="<?php echo !empty($dataNasc)?$dataNasc:''; ?>">
                             <?php if(!empty($dataError)): ?>
                             <span class="help-block"><?php echo $dataError; ?></span>
                             <?php endif; ?>
                         </div>
                     </div>
                 </div>
                 <div class="panel-footer" style="margin-top: 90px;">
                     <button class="btn btn-primary">Alterar</button>
                     <a href="listaFamiliar.php" class="btn btn-default">Voltar</a>
                 </div>
                 </div>
             </div>
         </form>
     </body>
 </html>

Primeiramente, deveria clicar no botão “visualizar” e abrir outro form com os dados selecionados, para que possa fazer a edição das informações. Acontece que quando executo, não carrega os inputs com os dados, somente no momento que clico no botão alterar é que mostra os dados. Sei que estou fazendo algo de errado, mas não sei onde. Portanto, peço ajuda de vocês. Muito Obrigado.

3 Respostas

D

Muda aqui, faltando ponto e vigula : action=“alterarFamiliar.php?idFamiliar=<?php echo $idFamiliar ;?>”

D

Faz assim, assim sendo em listaFamiliar pega o idFamiliar:

H

Caro colega D2388,

infelizmente não deu certo. Quando clico no botão alterar, é “mostrado” em outra tela, nos campos inputs, somente o idFamiliar recuperado. Já o nomeFamiliar e dataNasc, não busca. O mais engraçado, é que quando clico no botão alterar, os campos são carregados com as informações.

Muito obrigado pelo retorno.

Criado 21 de maio de 2017
Ultima resposta 23 de mai. de 2017
Respostas 3
Participantes 2