Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

pemoamsi

Problemas com leituras de dados no segundo submit

Mensagens Recomendadas

pemoamsi

A minha "aplicação" devia enviar as coordenadas X e Y para uma div (coisa que faz) e enviar também a mensagem de que foi premida a tecla do rato ou se foi duplo clique.

O problema aqui é que quando tento enviar a mensagem por javascript, a mensagem é "apagada" logo no reload da pagina, e eu queria que ele me permitisse guardar esse valor numa variavel do php para poder imprimir no reload...


<?Php	  
$foo_x=$_POST['foo_x'];
$foo_y=$_POST['foo_y'];


echo '  <form action="" method=post onmousedown="rightbutton(event)";>
	<input type="image"  
		src="image.jpeg"  
		name="foo"				
		ondblclick="dclickfunc()"
		onclick="clickfunc()"
		style="cursor:crosshair"	
		width="' . $hor  . '"
		height="' . $ver . '"
		value="""/>
	<input type="hidden" name="resize" value="'. $resize .'">	
	</form>	  ';	  



?>	
<p id="click"> </p>
</body>
</html>

<script>
function clickfunc()
{
document.getElementById("click").innerHTML="Last action: Click";	
}
function dclickfunc()
{
document.getElementById("click").innerHTML="Last action: Double Click";
}
</script>

Editado por pemoamsi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

não achas que falta explicar muito coisa não só no código como explicar claramente o que pretendes ?

entre as várias coisas que não se percebe, acho que a principal será :

document.getElementById("click").innerHTML="Last action: Click";
// de que buraco negro retiraste o elemento com o id "click" ?? é que não o vejo no código que apresentaste ...

no entanto, vou dar asas à minha imaginação e tentar responder com uma solução ao pouco que percebi da questão :

<?Php      
$foo_x=$_POST['foo_x'];
$foo_y=$_POST['foo_y'];
$message=$_POST['message'];

echo '  <form action="" method=post onmousedown="rightbutton(event)";>
           <input type="image"  
                   src="image.jpeg"  
                   name="foo"                      
                   ondblclick="dclickfunc()"
                   onclick="clickfunc()"
                   style="cursor:crosshair"     
                   width="' . $hor  . '"
                   height="' . $ver . '"
                   value=""/>
           <input type="hidden" name="resize" value="'. $resize .'">     
           <input type="hidden" id="message" name="message" value="'. $message .'">     
           </form>       ';       



?>     
<p id="demo"> </p>
</body>
</html>

<script>
function clickfunc()
{
   document.getElementById("click").innerHTML="Last action: Click";     
   document.getElementById("message").value="Last action: Click";     
}
function dclickfunc()
{
   document.getElementById("click").innerHTML="Last action: Double Click";
   document.getElementById("message").value="Last action: Double Click";
}
</script>


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

Obrigado, felizmente percebeste perfeitamente o que queria, já alterei a "<p id="demo"> </p>" era id = click que é o sitio onde estava a imprimir a mensagem...

O click funciona perfeitamente, mas o duplo clique não ... sugeres alguma forma de o contornar?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

se "sintomas" tem a aplicação ?

estás a dizer que o duplo clique não guarda a mensagem no elemento com o id "click" ?

a mensagem não é apresentada após o submit ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

se "sintomas" tem a aplicação ?

estás a dizer que o duplo clique não guarda a mensagem no elemento com o id "click" ?

a mensagem não é apresentada após o submit ?

O problema é que apresenta novamente a mensagem click e não duplo clique

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Como é que estás a tentar captar o dblclick?


"[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%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

Como é que estás a tentar captar o dblclick?

Estou a user o " ondblclick="dclickfunc()" " e o " onclick="clickfunc()" " para o click normal

fiz o seguinte:

acrescentei outro input

    <input type="hidden" id="message" name="message" value="'. $message .'">    
    <input type="hidden" id="dmessage" name="dmessage" value="'. $dmessage .'">    

E depois a function

function dclick()
{																		   
   document.getElementById("dmessage").value="Last action: Double Click";

}

De qualquer maneira não imprime nada... até coloquei o $message=$_POST['message']; (que funciona bem) como $message=$_POST['dmessage']; para testar... e nada

Editado por pemoamsi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

N gosto de escrever js nos atributos das tags HTML e não tenho prática com isso, por isso, não te consigo ajudar corretamente.

Além disso, eu não gosto de eval() nem de funções cujo único objetivo é chamarem outras funções.


"[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%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

document.getElementById("dmessage").value="Last action: Double Click";

Presumo que coloque no input com o id dmessage o valor "Last action: Double Click", tal como no outro caso coloca "Last action: Click". Acreditava que era por causa da variavel ckick que a dclick não funcionava, mas afinal parece que não é isso... pois mesmo removendo a função onclick="clickfunc()" , a function:

function dclickfunc()
{
   document.getElementById("click").innerHTML="Last action: Double Click";
   document.getElementById("message").value="Last action: Double Click";
}

Continua sem funcionar...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

e que tal responder à minha pergunta ?

responde a esta pergunta : "que valor tem a variável $dmessage ?"

nota : "$dmessage" é uma variável do PHP !!!


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

então prontos ... qual é o problema ?

faz esta parte -> document.getElementById("click").innerHTML="Last action: Double Click"; (coloca na pagina actual)

não imprime esta -> document.getElementById("dmessage").value="Last action: Double Click"; (não coloca na página seguinte)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

olha para o código do meu primeiro post

agora explica porque razão estás a separar a mensagem de click e a mensagem de double click ...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

Eu usei e estou novamente a usar o que me disseste, mas acontece exactamente a mesma coisa...

Não compreendo o problema.

Na altura pensei que assim como disse, resolvia, uma vez que com o código que me deu corria o risto de estar a fazer as duas funções ao mesmo tempo, e assim, uma "subrepor-se" a outra, mas afinal não era esse o problema :(

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.