Ir para conteúdo

POWERED BY:

Arquivado

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

Alex_DTP

Atualizar formulário na mesma página e Âncora

Recommended Posts

Pessoal, uma luz por favor...

 

Tenho uma página com 2 formulários.

 

Quero que ao preencher o primeiro formulário e clicar no botão atualizar ele atualize, ou seja envie os dados e fique mostrando a mesma página, para que o usuário possa então preencher o segundo formulário logo abaixo, que é a postagem de imagens.

 

Outra coisa é que ao postar as imagens (2º formulário) e clicar no botão "enviar imagens" atualize e vá para uma âncora no ponto em que estão sendo exibidas as imagens que estão sendo inseridas, logo acima do 2º formulário. O que está acontecendo é que ao atualizar a página vai lá para o topo e aí tem que descer até o ponto onde estão sendo exibidas as imagens para visualizar.

Sei que tem alguma coisa como header("Location: mas não sei como usar.

 

Exemplificando

 

1 - 1º formulário (dados)

 

2 - Exibição das imagens (onde terá a âncora)

 

3 - 2º formulário (envio de imagens)

 

Coloquei parte do código abaixo para visualização.

 

Obs.: Tudo já está funcionando, só preciso destas soluções para o melhor funcionamento

 

 

Códigos

 

 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {

$strKey = substr( md5( uniqid( microtime())), 0, 28);

$insertSQL = sprintf("INSERT INTO tblimagens (idObra, NomeDoArquivo, strImgAuthor) VALUES (%s, %s, %s)",

GetSQLValueString($_POST['idObra'], "int"),

GetSQLValueString($strKey . '.jpg', "text"),

GetSQLValueString($_POST['strImgAuthor'], "text"));

 

mysql_select_db($database_connDB, $connDB);

$Result1 = mysql_query($insertSQL, $connDB) or die(mysql_error());

 

$strImageTmp = $_FILES['NomeDoArquivo']['tmp_name'];

$objImg = new W3_Image;

$objImg->create( $strImageTmp, 100, 100, '../images/escultura/' . $strKey . '.thumb.jpg');

$objImg->create( $strImageTmp, 480, 360, '../images/escultura/' . $strKey . '.jpg');

}

 

. . .

 

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {

$updateSQL = sprintf("UPDATE tblesculturas SET NomeDaObra=%s, ... idObra=%s",

GetSQLValueString($_POST['NomeDaObra'], "text"),

...

GetSQLValueString($_POST['idObra'], "int"));

 

mysql_select_db($database_connDB, $connDB);

$Result1 = mysql_query($updateSQL, $connDB) or die(mysql_error());

 

$updateGoTo = "/nnn/escultura.php";

if (isset($_SERVER['QUERY_STRING'])) {

$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";

$updateGoTo .= $_SERVER['QUERY_STRING'];

}

header(sprintf("Location: %s", $updateGoTo));

}

 

. . .

 

(1º Formulário)

 

<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">

<table>

. . .

</table>

<input type="submit" value="Atualizar formulário" />

<input type="hidden" name="MM_update" value="form1" />

<input type="hidden" name="idObra" value="<?php echo $row_rsEscultura['idObra']; ?>" />

</form>

 

. . .

 

Aqui eu mostro as imagens

 

Imagens (onde deverá ter a âncora)

<img src="/nnn/images/escultura/<?php echo str_replace( '.jpg', '.thumb.jpg', $row_rsImages['NomeDoArquivo']); ?>" alt="" />

 

 

(2º formulário)

 

<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form2" id="form2">

<table>

. . .

</table>

<input type="submit" value="Enviar imagens" />

<input type="hidden" name="idObra" value="<?php echo $row_rsEscultura['idObra']; ?>" />

<input type="hidden" name="MM_insert" value="form2" />

</form>

 

 

Valeu mais uma vez a comunidade deste excelente fórum.

 

Alex

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria mais ou menos assim :D

se pega a lgica pegou a solucao e so executar esse script e tu vai pega a ideia

 

CODE

<?

$email=$_POST["email"];

 

if($email=="") {

?>

<form action="<?=$_SERVER["PHP_SELF"]?>" method="post" name="form1" id="form1">

Seu email <input type="text" name="email"/>

<input type="submit" value="Enviar" id="submit"/>

<?

}

else {

extract($_POST);

/*´pega o post */

echo $query="aqui da um insert no email banco" ;

 

 

$nome=$_POST["nome"];

if($nome=="") {

?>

<form action="<?=$_SERVER["PHP_SELF"]?>" method="post" name="form1" id="form1">

Seu nome <input type="text" name="nome"/>

Seu email <input type="text" name="email" value="<?=$email?>"/>

<input type="submit" value="Enviar" id="submit"/>

<?

}

else {

extract($_POST);

echo $query2="aqui da um insert no nome no banco" ;

}

}

?>

 

 

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

um abraço kakaroto

http://www.obsidiann.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria mais ou menos assim :D

se pega a lgica pegou a solucao e so executar esse script e tu vai pega a ideia...

Humm??? Não esclareceu muito.

Sou principiante em programação. Estou montando este portalzinho estudando o curso DW+PHP+MySQL do Leandro Vieira (iMasters) e ainda tenho dificuldades para mesclar os códigos.

 

Mas chego lá!

 

De qualquer forma, valeu a intenção.

 

Alex

Compartilhar este post


Link para o post
Compartilhar em outros sites

alex aqui e um forum , com uma galera manera aqui

 

você tem que disse o que nao entendeu para assim a galera te ajuda

 

você executou o script http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

kakaroto

Compartilhar este post


Link para o post
Compartilhar em outros sites

alex aqui e um forum , com uma galera manera aqui

 

você tem que disse o que nao entendeu para assim a galera te ajuda

 

você executou o script http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

kakaroto

Eu executei o scipt mas não entendi como aplicar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você mesmo falou sao dois form certo

entao como eu fiz

eu peguei um dos campos

$email=$_POST["email"];

do formulario

 

e fiz a condicao

 

if o email nao existir eu coloco o form

 

f($email=="") {

?>

<form action="<?=$_SERVER["PHP_SELF"]?>" method="post" name="form1" id="form1">

Seu email <input type="text" name="email"/>

<input type="submit" value="Enviar" id="submit"/>

<?

}

else {

/*senao siginifica que o cara preencheu o formulario

 

<?=$_SERVER["PHP_SELF"]?>- significa que eu vou dar( ops o php:D) dar reload na pagina que eu estou

*/

extract($_POST);

/*ou seja eu pego o post*/

/*´pega o post */

$query="aqui da um insert no email banco" ;

 

/*e faco os inset no banco */

$nome=$_POST["nome"];

essa variavel nome esta no segundo post

faço a memsa ideia vendo se nao tem post

se nao tem post do segundo form eu vou exibi

 

lembrando que a variavel email que eu setei la em cima tem que esta no segundo form

senao cai na primeira condicao

por isso que você viu o email no segundo form

e minha segurança para eu permanece no segundo form

e faço a mesma ideia do primeiro form

pego uma variavel no segundo form e seto ela

como eu fiz no primeiro

fala que pegou a ideia e testa ? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

CODE
<?

$email=$_POST["email"];

 

if($email=="") {

?>

<form action="<?=$_SERVER["PHP_SELF"]?>" method="post" name="form1" id="form1">

Seu email <input type="text" name="email"/>

<input type="submit" value="Enviar" id="submit"/>

<?

}

else {

extract($_POST);

/*´pega o post */

echo $query="aqui da um insert no email banco" ;

 

$nome=$_POST["nome"];

/*crio uma variavel nome*/

 

 

$nome=$_POST["nome"];

if($nome=="") {

?>

<form action="<?=$_SERVER["PHP_SELF"]?>" method="post" name="form1" id="form1">

Seu nome <input type="text" name="nome"/>

Seu email <input type="text" name="email" value="<?=$email?>"/>

<input type="submit" value="Enviar" id="submit"/>

<?

}

else {

extract($_POST);

echo $query2="aqui da um insert no nome no banco" ;

}

}

?>

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.