Jump to content

Clicar numa imagem e alterar para outra enviando para BD


Recommended Posts

Posted (edited)

Pretendia fazer uma função, mas não estou a conseguir enquadrar bem.

O que gostaria de fazer, era ter duas imagens, um com um "+" e outra com o "-".

E ao carregar no "+", fazia um Insert na BD, e nesse mesmo momento, alterava para a outra imagem.

Nesse outra imagem (o "-"), fazeria um Remove na BD, e voltava a alterar para o "+" e assim continuamente.

Sempre que fosse carregado nas imagens, fazia essa função, e alterava continuamente para a outra imagem

Eu tentei fazer algo do que pretendia, apresar de não ter ficado do meu pretendido, contudo peço aqui alguma ajuda.

*Se houver forma mais fácil de fazer com texto, também aceito, apesar de preferir imagem.

<script type="text/javascript">
function playpause(obj) {
var src = obj.src;
var alt = obj.alt

obj.src = obj.src== '/images/more.png'?
  '/images/less.png':
  '/images/more.png';
obj.alt = obj.alt== 'remove'?'add':'remove';
}
</script>

<img src="images/more.png" alt="add" onclick="playpause(this);" style="cursor:pointer" />
Edited by tiko165
collectioneuro300px.png
Posted

eu entendi vagamente o que qerias, mas nao entendi esse codigo que ai meteste :S

Eu so tentei, e coloquei este código para tentar mostrar melhor o que pretendo,

E acredito que não seja o melhor código para fazer o que quero.

collectioneuro300px.png
Posted (edited)

Aqui fica a minha proposta para o teu problema.

Eu não utilizaria qualquer imagem mas apenas '+' numa div com id="simbolo" e uma variável estilo "interruptor" ($simboloclick):

<div id="simbolo">+</div>

<script type="text/javascript">
$("#simbolo").click(function(){

if (simboloclik == false) {
  	 $("#simbolo").text("-");   /*muda o + para -  */
	/*faz o teu INSERT na BD com ajax*/
  	 simboloclik = true;
}
else {
  	 $("#simbolo").text("+");    /*muda o - para + */
   /*Vai à BD e REMOVE com ajax*/
  	 simboloclik = false;
 }
});
</script>
Edited by Virneto

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Posted

Isso nem sequer esta a funcionar (...)

Desculpa lá, culpa minha! 😞

simboloclik=false; /*faltava isto*/
$("#simbolo").click(function(){
	if (simboloclik == false) {  
	 $("#simbolo").text("-");   /*muda o + para -  */
			/*faz o teu INSERT na BD com ajax*/
	 simboloclik = true;
	}
	else {
	 $("#simbolo").text("+");	/*muda o - para + */
	   /*Vai à BD e REMOVE com ajax*/
	 simboloclik = false;
	 }
});

aqui o teste. http://jsfiddle.net/Virneto/KcsVK/

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Posted (edited)

Faltava-me o link do Jquery "jquery-1.9.1", e por essa mesma razão não me funcionava. Thanks

Agora a partir daqui vou tentar adequar ao que pretendo 😉

*** Da para colocar a ler um ficheiro php com com funções inserts e removes, entre o codigo do Javascript?

Isto funcionará?? document.write("<?php require('file.php'); ?>");

Edited by tiko165
collectioneuro300px.png
Posted

Isto funcionará?? document.write("<?php require('file.php'); ?>");

isto não funcionará porque o php corre no servidor, ou seja, antes de a página ser enviada ao host e antes do Javascript.

Para redirecionar fazes:

window.location = "teu url";

Ou também podes utilizar AJAX com o JQuery (como eu tinha sugerido no código comentado), pois seria mais transparente para o utilizador e não tens de recarregar a página.

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Posted

isto não funcionará porque o php corre no servidor, ou seja, antes de a página ser enviada ao host e antes do Javascript.

Para redirecionar fazes:

window.location = "teu url";

Ou também podes utilizar AJAX com o JQuery (como eu tinha sugerido no código comentado), pois seria mais transparente para o utilizador e não tens de recarregar a página.

O que eu pretendia mesmo fazer, era trocar de simbolo, enviar os dados para a BD, e não haver qualquer recarga de página.

Contudo, como ja tenho o site praticamente pronto (pois fiz-lo com links a recarregar página), poderá haver uma forma de faze-lo sem a tal recarga.

collectioneuro300px.png
  • 3 weeks later...
Posted

.

Desnecessário isso, tiko...

Enfim...

Se tens alguma dúvida coloca, se não conseguiste resolver diz que erros obtens, se vieste para marcar ponto, é desnecessário...

Abraço,

Rafael.

Posted

Desnecessário isso, tiko...

Enfim...

Se tens alguma dúvida coloca, se não conseguiste resolver diz que erros obtens, se vieste para marcar ponto, é desnecessário...

Abraço,

Rafael.

Desculpem, erro meu... Não reparei que deixei este ponto aqui :s

collectioneuro300px.png

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.