Jump to content
psilvaj

Recuperar dados inseridos no form

Recommended Posts

psilvaj

Boas!

Eu não sei se estou a colocar a questão no local certo.

Eu tenho um formulário com vários inputs. A minha questão é a seguinte. Caso o utilizador chegue ao fim submeta mas viu que pretendia alterar um dado. Para não introduzir tudo de novo dá para recuperar esses dados com alguma função especifica?

Já vi em alguns sites onde introduzimos,por exemplo, os nossos dados pessoais e depois ao clicar para alterar, cada dado aparece no local correcto para ser alterado.

Como posso fazer isso?

Estes dados estão a ser gravados numa base de dados. Posso "pedir" ao servidor dados introduzidos num dia especifico, por exemplo, e nesse caso os dados voltarem a aparecer nos locais correctos para serem alterados?

Obrigado!

Share this post


Link to post
Share on other sites
brunoais

Usa a variável $_POST. É um array com as várias coisas submetidas pelo utilizador.

No HTML inseres uma coisa do tipo:

<input type="???" name="sentname" value="<php echo $_POST['sentname'] ?>">


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
psilvaj

Usa a variável $_POST. É um array com as várias coisas submetidas pelo utilizador.

No HTML inseres uma coisa do tipo:

<input type="???" name="sentname" value="<php echo $_POST['sentname'] ?>">

Boas! Sim funcionou, mas não queria que fosse automático pois assim na proxima utilização do formulario tenho que andar a apagar os dados.

O que pretendia era adicionar mais um botão que permitisse activar uma função que recolocaria os valores inseridos nos locais.

Alguma sugestão?

Share this post


Link to post
Share on other sites
ruimcosta

Viva

Nãso vas pelo 2º botao. Quando submetes o formulário, saberás de certo o que pretendes fazer com a informação. Ex. guardar na base de dados, enviar por mail, etc.

Qualquer que seja a acção pretendida, poderás sempre verificar se a tua acção funcionou. Se funcionou tudo ok, e mantens os campos limpos, se por acaso ocorrer algum erro e falhar a tua acção, preenches os campos com o $_POST


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
psilvaj

Viva

Nãso vas pelo 2º botao. Quando submetes o formulário, saberás de certo o que pretendes fazer com a informação. Ex. guardar na base de dados, enviar por mail, etc.

Qualquer que seja a acção pretendida, poderás sempre verificar se a tua acção funcionou. Se funcionou tudo ok, e mantens os campos limpos, se por acaso ocorrer algum erro e falhar a tua acção, preenches os campos com o $_POST

Boas.

Sim, eu tenho a informação a ser guardada numa base de dados que eu tenho acesso e posso ir ver, mas os restantes utilizadores já não.

Como este formulário é para ser usado por mais pessoal estava a tentar facilitar o utilizador colocando à sua disposição um "facilitador".

Caso reparasse que tinha inserido mal os dados (isto depois de submeter), poderia clicar nesse botão (ou uma outra opção) e obter todos os dados que tinha inserido podendo então proceder à sua correcção.

Share this post


Link to post
Share on other sites
ruimcosta

Foi exactamente esse caso que percebi. Vamos ver:

if( !mysql_query($sql) ){
   // ocorreram erros a inserir na BD

   $erro = 1;
}else{
   // Não ocorreram erros

   $erro = 0;
}

// Valida se houve erros:
    // se SIM, guarda os valores submetidos e insere-os no formulário de novo
    if( $erro == 1 ){
        if( isset($_POST['nome']) ) {
		$nome = safe( $_POST['nome'] );
	}

	if( isset($_POST['tlf']) ) {
		$tlf = safe( $_POST['tlf'] );
	}

	if( isset($_POST['email']) ) {
		$email = safe( $_POST['email'] );
	}

	if( isset($_POST['msg']) ) {
		$msg = safe( $_POST['msg'] );
	}
    }else{
	$nome  = "";
	$tlf   = "";
	$email = "";
	$msg   = "";
    
    }

//depois mais abaixo no formulário
?>
<form method="post" action="index.php?pag=form_contacto">
        <ul>
            <li>Nome</li>
            <li><input type="text" name="nome" id="nome" size="40" maxlength="100" class="caixa" value="<?php echo $nome; ?>" /></li>
            <li class="erro" id="nome_error"><?php echo $nome_error; ?></li>
            
            <li class="label">Telefone / Telemóvel</li>
            <li><input type="text" name="tlf" id="tlf" size="40" class="caixa" style="width: 150px;" value="<?php echo $tlf; ?>" /></li>
            
            <li class="label">E-mail</li>
            <li><input type="text" name="email" id="email" size="40" maxlength="50" class="caixa" value="<?php echo $email; ?>" /></li>
            <li class="erro" id="email_error"><?php echo $email_error; ?></li>
            
            <li class="label">Mensagem</li>
            <li><textarea name="msg" id="msg" cols="40" rows="6"><?php echo $msg; ?></textarea></li>
            <li class="erro" id="msg_error"><?php echo $msg_error; ?></li>   
            
            <li style="margin-top: 15px;"><img id="captcha" src="classes/securimage_show.php" alt="Segurança CAPTCHA. Digite na caixa abaixo o conteúdo desta imagem" /></li>      
            <li><input type="text" name="captcha_code" size="10" maxlength="6" class="caixa" /> <a href="#" onclick="document.getElementById('captcha').src = 'classes/securimage_show.php?' + Math.random(); return false">Mude a Imagem</a></li> 
        </ul>
        
        <input type="submit" name="btnenviar" id="btnenviar" value="Enviar" />
    </form>

Deu para perceber? Não precisas de obrigar o utilizador a carregar num botão que se calhar nem reparou que existe


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
psilvaj

Foi exactamente esse caso que percebi. Vamos ver:

if( !mysql_query($sql) ){
   // ocorreram erros a inserir na BD

   $erro = 1;
}else{
   // Não ocorreram erros

   $erro = 0;
}

// Valida se houve erros:
    // se SIM, guarda os valores submetidos e insere-os no formulário de novo
    if( $erro == 1 ){
        if( isset($_POST['nome']) ) {
		$nome = safe( $_POST['nome'] );
	}

	if( isset($_POST['tlf']) ) {
		$tlf = safe( $_POST['tlf'] );
	}

	if( isset($_POST['email']) ) {
		$email = safe( $_POST['email'] );
	}

	if( isset($_POST['msg']) ) {
		$msg = safe( $_POST['msg'] );
	}
    }else{
	$nome  = "";
	$tlf   = "";
	$email = "";
	$msg   = "";
    
    }

//depois mais abaixo no formulário
?>
<form method="post" action="index.php?pag=form_contacto">
        <ul>
            <li>Nome</li>
            <li><input type="text" name="nome" id="nome" size="40" maxlength="100" class="caixa" value="<?php echo $nome; ?>" /></li>
            <li class="erro" id="nome_error"><?php echo $nome_error; ?></li>
            
            <li class="label">Telefone / Telemóvel</li>
            <li><input type="text" name="tlf" id="tlf" size="40" class="caixa" style="width: 150px;" value="<?php echo $tlf; ?>" /></li>
            
            <li class="label">E-mail</li>
            <li><input type="text" name="email" id="email" size="40" maxlength="50" class="caixa" value="<?php echo $email; ?>" /></li>
            <li class="erro" id="email_error"><?php echo $email_error; ?></li>
            
            <li class="label">Mensagem</li>
            <li><textarea name="msg" id="msg" cols="40" rows="6"><?php echo $msg; ?></textarea></li>
            <li class="erro" id="msg_error"><?php echo $msg_error; ?></li>   
            
            <li style="margin-top: 15px;"><img id="captcha" src="classes/securimage_show.php" alt="Segurança CAPTCHA. Digite na caixa abaixo o conteúdo desta imagem" /></li>      
            <li><input type="text" name="captcha_code" size="10" maxlength="6" class="caixa" /> <a href="#" onclick="document.getElementById('captcha').src = 'classes/securimage_show.php?' + Math.random(); return false">Mude a Imagem</a></li> 
        </ul>
        
        <input type="submit" name="btnenviar" id="btnenviar" value="Enviar" />
    </form>

Deu para perceber? Não precisas de obrigar o utilizador a carregar num botão que se calhar nem reparou que existe

Ah, ok. Eu nem me tinha lembrado nessa situação. Pensei só no caso do utilizador se aperceber e querer alterar.

Eu vou experimentar.

Obrigado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.