Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Weikm@n

[Resolvido] Como usar o mesmo formulario para enviar e editar dad

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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....

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?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....

Compartilhar este post


Link para o post
Compartilhar em outros sites

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....

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ???

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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")

Compartilhar este post


Link para o post
Compartilhar em outros sites

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,

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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