Ir para conteúdo
  • 0

Pergunta

alguém pode me dar uma luz ? Como eu faria para editar um item da tabela? Tipo, ao clicar sobre o que eu quero editar ele abre com as informações salvas e pronto para ser alterado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

7 respostas a esta questão

Recommended Posts

  • 0

Cara pensa assim:

 

 

 

Cada linha da tabela é um elemento que vai chamar uma coisa especifica, no caso, os dados a serem alterados, então ele precisa passar um parâmetro.

 

Suponha que você tem uma tabela que irá ser editada com os campos ->id,nome,email

 

Você faz isso colocando um data atributte na tr com id dos dados que devam ser editados,

<tr data-id='id'>
             <td></td>
             <td></td>
</tr>

Após ter gerado a tabela com as linhas e ids, você dispara o evento que vai buscar um formulário para edição.

$(document).on('click', '.editar', function () {
    var id = $(this).data('id');
    $.ajax({
        type: "POST",
        url: "pagina.php",
        data: {id: id},
        dataType: 'json',
        success: function (data)
        {
            var retorno = data;

            if(retorno === 1){
              var nome = data['nome'];
              var email = data['email'];
               $('.formulario').show();
               $('.nome').val(nome);
               $('.email').val(email);
            }else{
               alert('erro no php');
            }
        }
    });
});

Pra isso você deve ter uma div, modal, algum elemento com o formulário que estava oculto antes do evento ser disparado.

 

<div class='formulario' style='display:none'>
  <form name='' class='form'>
    <input type='text' class='nome'>
    <input type='text' class='email'>
    <button class='salvar'>Salvar</button>
  </form>
</div>
<table>
  <tr>
    <td><td>
  </tr>
</table>

Após o evento anterior ser disparado com os parâmetros corretos deverá haver um arquivo php para buscar os dados no banco de dados e trazer a resposta json.

$id = $_POST['id'];
$sql = "SELEC * FROM tabela WHERE id = '$id'";
$rs = mysqli_query($sql);
while($row = mysqli_fetch_array($rs)){
$nome = $row['nome'];
$email = $row['email];
}
$retorno = Array().
$retorno['nome'] = $nome;
$retorno['email'] = $email;
echo json_encode($retorno);

com isso citado acima feito, você ja vai ter um formulário com os dados buscados através do banco de dados, ai só efetuar o envio do formulário, e receber em outra função php os parametros, e efetuar um UPDATE na tabela.

Coisas que você deve pesquisar pra aprender isso:

 

1 - Eventos jquery.
2 - Envio de formulário sem refresh.

3 - SELECT, INSERT, UPDATE, DELETE no MySQL com PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
1 minuto atrás, AnthraxisBR disse:

Cara pensa assim:

 

 

 

Cada linha da tabela é um elemento que vai chamar uma coisa especifica, no caso, os dados a serem alterados, então ele precisa passar um parâmetro.

 

Suponha que você tem uma tabela que irá ser editada com os campos ->id,nome,email

 

Você faz isso colocando um data atributte na tr com id dos dados que devam ser editados,


<tr data-id='id'>
             <td></td>
             <td></td>
</tr>

Após ter gerado a tabela com as linhas e ids, você dispara o evento que vai buscar um formulário para edição.


$(document).on('click', '.delete', function () {
    var id = $(this).data('id');
    $.ajax({
        type: "POST",
        url: "pagina.php",
        data: {id: id},
        dataType: 'json',
        success: function (data)
        {
            var retorno = data;

            if(retorno === 1){
              var nome = data['nome'];
              var email = data['email'];
               $('.formulario').show();
            }else{
               alert('erro no php');
            }
        }
    });
});

Pra isso você deve ter uma div, modal, algum elemento com o formulário.

 

Essa é a parte que lista os elementos

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
        $titulo = "Controle &raquo; Listar Material";
        require_once ("includes/header.php"); 
    ?>
</head>
<title> </title>
<style>
table {
    border-collapse: collapse;
    width: 100%;
}

th, td {
    text-align: left;
    padding: 8px;
}

tr:nth-child(even){background-color: #f2f2f2}

th {
    background-color: #4CAF50;
    color: white;
}
</style>
</head>
<body>
                <?php
    require_once('includes/testes.php');
    ?>
    
        
<?php
// Conexão ao banco
//require_once('conexao.php');
?>
<div id="principal">
                <form action="<?php $_SERVER['PHP_SELF']?>" method="post">
                    <fieldset>

                    
<?php
require_once('conexao.php');


echo"<table width='100%' border='1'>";

echo '<table>';
echo '<tr>';
echo'<td>id</td>';
echo'<td>NOME</td>';
echo'<td>TELEFONE</td>';
echo'<td>Editar</td>';
echo'<td>Excluir</td>';
echo '</tr>';
$res = mysqli_query($conn, "SELECT * FROM fornec");


while($row = mysqli_fetch_array($res)){

echo '<tr>';
echo '<td>'.$row["id"].'</td>';
echo '<td>'.$row["NOME"].'</td>';
echo '<td>'.$row["FONE_2"].'</td>';
echo '<td><a href="edita_fornec.php?id='.$row['id'].'">✍</a>
      <td><a href="deleta2.php?id='.$row['id'].'">✖</a>
      </tr>';
}
echo '</table>';                

?>
<!-- a href ="listar_fornec.php?delete=<?php //echo $id; ?>">Delete</a>
-->

    </fieldset>                
        </form>
            </div> <!-- Fim da div#principal -->
                        <?php include('includes/fimerodape.php'); ?>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
1 hora atrás, AnthraxisBR disse:

Da uma analisada na resposta, se não conseguir a noite eu posto em algum lugar um modelo disso pra você ter uma base.

Okay, ficaria muito agradecido, obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por martinazzo
      não consigo apagar, então deixei assim... se alguém conseguir por favor
    • Por MateusOFCZ
      Olá, eu criei uma página de publicidade, porém não fluiu como eu queria, então coloquei essa página em uma DIV, alguém poderia me informar se irá funcionar caso eu faça um sistema para ocultar essa DIV depois de 10 segundos?

       
      <!--- Publicidade ------> <div id="publicidadediv"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title><?= $config['hotelName'] ?> - Publicidade</title> <script src="/templates/GalaxyServers/client/js/jquery-latest.js" type="text/javascript"></script> <script src="/templates/GalaxyServers/client/js/jquery-ui.js" type="text/javascript"></script> <script src="/templates/GalaxyServers/client/js/spacehotel2018.js"></script> <script src="/templates/GalaxyServers/client/js/flash_detect_min.js"></script> <script src="/templates/GalaxyServers/client/js/client.js" type="text/javascript"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="icon" type="image/png" href="<?= $config["favicon"];?>"> </head> <body> <body style="background-color:black;"> <center><img src="https://i.imgur.com/kHdzpqq.png" style="width:396px;height:91px;"></center> <center><?php $imagens = array(); $imagens[] = '<a href="https://hobbyhotel.club/hotel?room=255" target="_blank"><img src="https://i.imgur.com/O0gSito.png" style="width:330px;height:250px;"></a>'; $imagens[] = '<a href="https://hobbyhotel.club/hotel?room=255" target="_blank"><img src="https://i.imgur.com/O0gSito.png" style="width:330px;height:250px;"></a>'; $chave = array_rand($imagens); $imagem = $imagens[$chave]; echo $imagem; ?></center> <center><img src="https://i.imgur.com/9FH4A5O.png" style="width:396px;height:91px;"></center> </body> </div> <!--- Publicidade ------> Gostaria de sabem também como faço para ocultar tudo isso após X segundos...
    • Por Francklyn Souza
      Bom, vou direto ao ponto, alguém saberia me dizer como resolver esse problema ou aviso seila
       
      Warning: Cannot modify header information - headers already sent by (output started at /srv/disk8/2953546/www/dominio.com/security/funcao.php:1) in /srv/disk8/2953546/www/dominio.com/security/config.php on line 7
       
      Arquivo.: config.php
      if(isset($_GET['lang'])): $lang = $_GET['lang']; $_SESSION['lang'] = $lang; setcookie('lang', $lang, time() + (3600 * 24 * 30)); elseif(isset($_SESSION['lang'])): $lang = $_SESSION['lang']; elseif(isset($_COOKIE['lang'])): $lang = $_COOKIE['lang']; else: $lang = "en"; endif; switch ($lang) { default: include "dice/language/lang_eng.php"; break; case "pt": include "dice/language/lang_ptbr.php"; break; case "en": include "dice/language/lang_eng.php"; break; }  
    • Por MateusOFCZ
      Olá, estou desenvolvendo um sistema de publicidade para meu site, e quando entra em uma página, vamos chama-la de "Publicidade" ele mostra uma publicidade e depois de 10 segundos ele redireciona (OBS.: Essa página já está funcionando 100%), e temos outra página que vamos chama-la de "Início", bom... Quando você entrar na página "Início" ele irá na verdade, redirecionar o usuário para a página de Publicidade, porém, como faço para a pessoa não poder pular essa publicidade, como se fosse um camuflador de página, ou seja, se o usuário acessar a página ele irá para a página "imasters.com.br/publicidade", porém se ele alterar o link para "imasters.com.br/inicio" ele irá obrigar o usuário a ver a publicidade primeiro para depois leva-lo a página de "Inicio", caso isso seja complexo de fazer, teria alguma forma de esconder o nome da página (a parte do "/inicio" por exemplo), e deixar apenas o link, por exemplo, se eu ir para a página de publicidade irá aparecer apenas o link, neste caso "imasters.com.br", e não "imasters.com.br/publicidade", caso tenha alguma dúvida sobre o meu pedido pode perguntar, não mordo rs.

      Deis de já agradeço!
    • Por Diego Alexandre Dias
      Boa tarde,
       
      Estou tentando incluir uma formatação de moeda (number_format) dentro de um comando While, porém não estou tendo sucesso.
      Por Exemplo:
       
      Criei uma tabela simples que contempla a relação de clientes com seus respectivos valores de creditos adiquiridos
       
      Neste caso no corpo da tabela eu possuo três colunas:
       
      Valor_Credito , Cliente, status
       
      criei uma variável  $venda que recebe o resultado de uma query do meu banco de dados. Este mesmo resultado da query eu atribui uma variavel chamada $total .
      Esta mesma consulta se encarrega de somar o valor total de crédito adiquirido por cliente
       
      Sendo assim, meu WHILE percorre por todo minha tabela de clientes somando os respectivos creditos.
      Como resultado eu consigo retornar todas as informações que eu quero, porém não estou conseguindo fazer com que o valor de crédito saia com a formatação de moeda.
       
       

       
      O comando responsável por me trazer a relação de clientes  juntamente com  os créditos somados.  
               while ($venda = mysqli_fetch_assoc($total)) {                 echo '<tr>';                     echo '<td class="text-left">';                         echo $venda ['valor_credito'];       // Esta é a linha que preciso utilizar o number_format, porém tentei adaptá-lo de diferentes formas, mas não consegui.                     echo '<td>';                         echo $venda['Cliente'];                     echo '</td>';                                                 echo '<td class="text-right">';                         echo $venda['status'];                     echo '</td>';                 echo '</tr>';                        echo '</tbody>'; Agradeço desde já quem puder me ajudar.
×

Informação importante

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