Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá garela, gostaria de criar um formulario q inserisse dados e se clicasse em editar, esse mesmo formulario editasse os dados q jah foram inseridos, alguem tm uma dica ou conhece um codigo q faz isso? obrigado
você poderia me mandar algum codigo? assim lendo eu nao entendi mto como faz, obrigado mesmo assim.
se puderes mandar qlqr um dos codigos q você usa q faça isso, vai me ajudar a entender melhor, obrigado.
>
Faça assim, se tiver um ID (ou qualquer outra chave primária) vindo de um POST ou GET (como desejar, a implementação pode fazer do seu jeito, tou só dando uma idéia) você, ao carregar o formulário, busca no banco os dados e nos VALUE dos campos, insira os dados.
Ao dar submit, apenas faça um teste, se houver o ID/chave use a instrução para atualizar, caso contrário use a de inserir.
Eu faço isso em minhas aplicações, espero ter ajudado.
EX:
<?php
include "sql.php";
$id_busca = $_GET["id"];
$sql = @mysql_query("SELECT * FROM tab_comercial_novo WHERE id = $id_busca");
while($linha =@mysql_fetch_array($sql)){
$id = $linha["id"];
$empresa = $linha["empresa"];
$resp = $linha["responsavel"];
}
if(isset($_POST["btnedita"])){
$emp = $_POST["txtempresa"];
$respo = $_POST["txtresp"];
$update = @mysql_query("UPDATE tab_comercial_novo SET empresa = '$emp', responsavel = '$respo' WHERE id = $id_busca");
echo "<script>alert('Cadastro alterado com suceso !!!'); window.location=''</script>";
}
?>
<head>
</head>
<body onload="javascript:document.getElementById('txtempresa').focus();" link="#002FEC" alink="#002FEC" vlink="#002FEC">
<form name="form1" action="" method="post" onsubmit="return verifica();">
<table width="804" border="0" align="center">
<tr>
<td colspan="2" align="center" bgcolor="#C8D5E4"><h2>.:: Editar Dados ::.</h2></td>
</tr>
<tr>
<td width="372" align="center" bgcolor="#C8D5E4"><strong>Empresa</strong></td>
<td width="416"><textarea name="txtempresa" cols="50" id="txtempresa"><?php echo $empresa;?></textarea></td>
</tr>
<tr>
<td align="center" bgcolor="#F2F2F2"><strong>Responsável</strong></td>
<td><input type="text" name="txtresp" id="txtresp" size="66" value="<?php echo $resp;?>" onKeyPress="return keyRestrict(event,'qwertyuiopasdfghjklçzxcvbnméêôâãõíó ');"/></td>
</tr>
</table>
</form>
</body>
</html>
Se tiver alguma duvida da um toque.
Abraço....
cara, nao entendi mto nao, nao tm o botao pra atualizar, tm umas variaveis faltando, você poderia se nao for pedi mto, fazer um codigo bem simples, soh pra alterar um valor mesmo, dai eu sigo a logica e faço o resto, mas queria mais completo, esse tah dificiu de entender, exemplo, eu nao sei oq tm no sql.php do seu pq tah em include, e você poderia fazer tudo numa mesma pagina? axo q o codigo seja bem pequeno, menor q esse q você mandou, jah deu pra mim entender metade, mas nao completo pois o codigo ainda falta umas variaves, rsrsr, mas fico grato pela ajuda, e agradeceria mais ainda se me ajudase a entender melhor, obrigado
Eu vou comentar esse codigo e te passo outra vez ae você ve se você entende melhor.
tah beleza, obrigado, vw aguardar,
>
Eu vou comentar esse codigo e te passo outra vez ae você ve se você entende melhor.
<?php
include "sql.php"; // É com esse sql.php que faço a conexão com o Banco de Dados.
$id_busca = $_GET["id"];// Eu estou pegando o ID do formulario
$sql = @mysql_query("SELECT * FROM tab_comercial_novo WHERE id = $id_busca");// Aqui estou selecionando tudo da tabela onde ID for igual ao $ID_BUSCA
while($linha =@mysql_fetch_array($sql)){ // Faço esse laço que ele coloca em um array os dados e completa os campos
$id = $linha["id"];
$empresa = $linha["empresa"];
$resp = $linha["responsavel"];
}
///////////////////////////////// So acontece isso quando você clicar no botao editar
if(isset($_POST["btnedita"])){
$emp = $_POST["txtempresa"]; // você pega o que esta escrito no campo e guarda nessa variavel $emp
$respo = $_POST["txtresp"]; // você pega o que esta escrito no campo e guarda nessa variavel $respo
$update = @mysql_query("UPDATE tab_comercial_novo SET empresa = '$emp', responsavel = '$respo' WHERE id = $id_busca");// Aqui você faz a alteração enquando os IDS sao iguais
echo "<script>alert('Cadastro alterado com suceso !!!'); window.location='coloca a pagina que você quer'</script>";//Com o alert cria uma janela escrito "Cadastor alterado com sucesso" e o window.location redireciona para a pagina que você quer
}
/////////////////////////////////////////
?>
<head>
</head>
///////////////////////////Codigo HTML////////////////////////////////
<body onload="javascript:document.getElementById('txtempresa').focus();" link="#002FEC" alink="#002FEC" vlink="#002FEC">
<form name="form1" action="" method="post" onsubmit="return verifica();">
<table width="804" border="0" align="center">
<tr>
<td colspan="2" align="center" bgcolor="#C8D5E4"><h2>.:: Editar Dados ::.</h2></td>
</tr>
<tr>
<td width="372" align="center" bgcolor="#C8D5E4"><strong>Empresa</strong></td>
<td width="416"><textarea name="txtempresa" cols="50" id="txtempresa"><?php echo $empresa;?></textarea></td>
</tr>
<tr>
<td align="center" bgcolor="#F2F2F2"><strong>Responsável</strong></td>
<td><input type="text" name="txtresp" id="txtresp" size="66" value="<?php echo $resp;?>"/></td>
</tr>
<input type="submit" name="btnedita" id="btnedita" value="Edita" />
</table>
</form>
</body>
</html>
Ve ae se você entende se nao entender posta ae.
Abraço....
Amigo, eu entendi o codigo na primeira vz, eu estou confuso pq tm variaveis q nao tm nada a vr cm o q eu pedi, pelo q eu vi, esse codigo soh eh pra editar, e isso eu sei fazer, eu consigo fazer um formulario pra editar e inserir, mas nao em um mesmo formulario, esse codigo tah meio confuso, você nao poderia simplificar? digo, nao preciso da variavel da busca dentre outras q tah no seu codigo, queria mesmo soh a parte q ele insere e edita, mas obrigado pela paciencia, se puderes fazer isso, ficarei grato, t+
>
Ve ae se você entende se nao entender posta ae.
Abraço....
Se der passa o seu codigo.
okay
Formulario para inserir
<form id="inserir" name="inserir" method="post" action="index.php?acao=enviar">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><table width="800" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#EBEBEB">
<tr>
<td>Inserir</td>
</tr>
</table></td>
</tr>
<tr>
<td>
<table width="800" border="0" align="center" cellpadding="2" cellspacing="0" bgcolor="#EBEBEB">
<tr>
<td width="15%" align="right">Nome:</td>
<td width="85%"><label>
<input name="nome" type="text" id="nome" size="70" />
</label></td>
</tr>
<tr>
<td align="right">Numero:</td>
<td><label>
<input name="numero" type="text" id="numero" size="5" />
</label></td>
</tr>
<tr>
<td align="right">Sexo:</td>
<td><label>
<select name="sexo" id="sexo">
<option value="1">Masculino</option>
<option value="2">Feminino</option>
</select>
</label></td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="submit" name="Submit" value="Inserir" />
</label></td>
</tr>
</table></td>
</tr>
</table>
</form>
Ação para inserir o formulario
<?php
if(isset($_GET["acao"]) && $_GET["acao"] == "enviar") {
$conexao = mysql_connect("localhost", "root", "")
or die ("Erro na conexão ao banco de dados.");
$db = mysql_select_db("jonas")
or die ("Erro ao selecionar a base de dados.");
$nome=$_POST["nome"];
$numero=$_POST["numero"];
$sexo=$_POST["sexo"];
if (empty($nome)){
echo "<script>alert('É Necessario o Preenchimento do Nome'); window.location=\"javascript:history.back(1)\"</script>";
}
elseif (empty($numero)){
echo "<script>alert('É Necessario o Preenchimento do Número'); window.location=\"javascript:history.back(1)\"</script>";
}
else{
$sql = "INSERT INTO nomes (
nome,
numero,
sexo
) VALUES (
'$nome',
'$numero',
'$sexo'
)";
/*
* executa a query
*/
$sql = mysql_query($sql)
or die ("Houve erro na gravação dos dados.");
echo "<script>alert('Dados Inseridos com Sucesso.'); window.location=\"index.php\"</script>";
}
}
?>
pronto, agora falta soh de editar, pq eu queria q fosse na mesma form do inserir, segue o mesmo padrao o codigo de inserir, porem nao criei ainda.
>
Se der passa o seu codigo.
Mas você vai ter mts nomes cadastrados ???
aham, rsrsr, vai tr varios, o banco de dados vai guardar o nome completo junto cm o numero, esse eh o numero da pasta do aluno, eh pra uma escola, ele vai adicionar, editar, excluir e pesquizar pelo nome ou numero. entendes?
isso eh uma parte do site.
>
Mas você vai ter mts nomes cadastrados ???
Fala Weikman, da para fazer isso fazendo alguma alteraçãozinha no script do DMW:
<?php
if ($_GET['id']) { // Aqui ele verifica se está vindo alguma ID, se estiver, significa que isso será uma edição do registro e não um novo cadastro...
include "sql.php"; // É com esse sql.php que faço a conexão com o Banco de Dados.
$id_busca = $_GET["id"];// Eu estou pegando o ID do formulario
$sql = @mysql_query("SELECT * FROM tab_comercial_novo WHERE id = $id_busca"); // Aqui estou selecionando tudo da tabela onde ID for igual ao $ID_BUSCA
while($linha =@mysql_fetch_array($sql)){ // Faço esse laço que ele coloca em um array os dados e completa os campos
$id = $linha["id"];
$empresa = $linha["empresa"];
$resp = $linha["responsavel"];
}
$action = "update";
} else {
$action = "insert";
}
?>
<form method="post" action="controlador.php?ac=<?php echo $action; ?>">
<fieldset>
<label for="empresa">Empresa <input type="text" name="empresa" id="empresa" value="<?php echo $empresa; ?>" /></label>
<label for="resp">Responsável <input type="text" name="resp" id="resp" value="<?php echo $resp; ?>" /></label>
<?php
if (isset($id)) {
echo "<input type=\"text\" name=\"id\" value=\"{$id}\" />\n";
}
?>
</fieldset>
<input type="submit" value="<?php echo $action; ?>" />
</form>
Daí nesse script controlador.php terão os INSERTS, UPDATES...
Abraços!
Entao cara quando tem varios nomes em um BD eu acostumo lista os nomes para editar.
Eu faço assim: tem o nome ae você clica no nome e aparece o formulario todo preenchido com os dados que você cadastro e tem um botao editar eu faço assim.
Se você quiser saber desse jeito eu te dou uma mao pq é facil.
pois eh, jah tah ate feito o link do editar e tudo, eh q eh assim, aparece o inserir encima e abaixo a lista, entao quando clicar em editar, nao quero q ele vah para outra pagina, e sim apareça os dados lah encima para eu poder edita-los, entende? do outro modo consigo tranquilo tbm, como você mesmo dize, eh facil, mas eu tw querendo deixar mais legal, pq ficaria mais bacana assim, nao axas?
obrigado pela ajuda.
>
Entao cara quando tem varios nomes em um BD eu acostumo lista os nomes para editar.
Eu faço assim: tem o nome ae você clica no nome e aparece o formulario todo preenchido com os dados que você cadastro e tem um botao editar eu faço assim.
Se você quiser saber desse jeito eu te dou uma mao pq é facil.
Opah amigo, o codigo tah cm alguns erros, eu tentei modificar, mas ainda nao consegui, pelo menos tah alterando o nome das acao e o nome do botao, jah eh um inicio, mas nos campos sempre aparece a seguinte coisa.
<br /> <b>Notice</b>: Undefined variable: nome in <b>C:\Arquivos de programas\EasyPHP5.3.0\www\jonas\teste.php</b> on line <b>25</b><br />
>
Fala Weikman, da para fazer isso fazendo alguma alteraçãozinha no script do DMW:
Daí nesse script controlador.php terão os INSERTS, UPDATES...
Abraços!
Se você ver como eu fiz ali em cima, você conseguirá adaptar para o seu caso...
E no link, você coloca para a mesma página, só que com o id passando como parâmetro ("?id=X")
pois eh, eu adaptei para o meu e depois q eu fiz a adaptacao q apareceu isso, tw passando o id pela url sim, mas nao tah passando o valor dos nomes, aparece aquele erro, vw vr se consigo, depois posto
>
Se você ver como eu fiz ali em cima, você conseguirá adaptar para o seu caso...
E no link, você coloca para a mesma página, só que com o id passando como parâmetro ("?id=X")
Mano, tipo, qnd eu passo o id pela url, ele pega legal, mas se nao tiver, ele dah um erro e tbm nos campos onde era pra mim inserir novos dados, ele aparece akela mensagem q eu mandei anteriomente, essa aki
Notice: Undefined index: id in C:\Arquivos de programas\EasyPHP5.3.0\www\jonas\teste.php on line 2
esse aparece dentro do textfield
<br /> <b>Notice</b>: Undefined variable: nome in <b>C:\Arquivos de programas\EasyPHP5.3.0\www\jonas\teste.php</b> on line <b>22</b><br />
o codigo eh o mesmo, soh alterei o sql e os nomes dos campos,
Esse erro acontece porque as variáveis não existem.
Mas você pode fazer assim:
<label for="empresa">Empresa <input type="text" name="empresa" id="empresa" value="<?php echo isset($empresa) ? $empresa : ""; ?>" /></label>
E fazer o mesmo para os outros campos.
Explicando o código:
*echo isset($empresa) ? $empresa : "";** *
exibe (EXISTE $empresa ?) $empresa CASO CONTRÁRIO vazio;
deu certo o codigo, obrigado, mas agora vm a questao de qnd nao eh pra editar, entao nao passa nenhuma id pela url, entao ele dah erro, como faço pra esse erro nao aparecer? igual a questao do campo?
olá garela, consegui tirar o erro q tava dando qnd nao tinha nenhum id na url, tah resolvido o topico, eu apenas acrescentei o isset no codigo q o lucasmartins.com.br tinha surgerido, fiz as alteracoes pra funcionar no meu banco de dados, e deu certo, obrigado a todos.
Faça assim, se tiver um ID (ou qualquer outra chave primária) vindo de um POST ou GET (como desejar, a implementação pode fazer do seu jeito, tou só dando uma idéia) você, ao carregar o formulário, busca no banco os dados e nos VALUE dos campos, insira os dados.
Ao dar submit, apenas faça um teste, se houver o ID/chave use a instrução para atualizar, caso contrário use a de inserir.
Eu faço isso em minhas aplicações, espero ter ajudado.