Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
>
2 minutos atrás, itlpps disse:
Só pesquisar "Update php": [https://pt.stackoverflow.com/questions/52252/edição-simples-de-registro-com-phpmysql](https://pt.stackoverflow.com/questions/52252/edi%C3%A7%C3%A3o-simples-de-registro-com-phpmysql)
Não sou programador, estou tentando aprender aos poucos, mas ta complicado. Eu estou usando o php procedural e lá é orientado a objeto. Eu só precisava de um exemplo básicoCara 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.>
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 » 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>Da uma analisada na resposta, se não conseguir a noite eu posto em algum lugar um modelo disso pra você ter uma base.
>
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!
Segue esse tutorial no meu GitHub, tenho um cadastrinho simples e acho que vai te ajudar no entendimento.
Só pesquisar "Update php": https://pt.stackoverflow.com/questions/52252/edição-simples-de-registro-com-phpmysql