Ir para conteúdo

POWERED BY:

Arquivado

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

Matheus Conti

Problema post

Recommended Posts

Fala ae galera estou com um problema muito estranho eu tenho uma pagina com 4 divs

essas 4 divs cada uma tem uma <input type=submit> passando um atriputo nao HTML chamado vip

e cada uma tem um value diferente assim...

 

<form action="<?php echo $base;?>/vip/&status=avancar" method="post" name="form1" class="centro" id="form1">
<div id="quadro>
	<div id="texto">
	//texto vip1
	<input name="Submit" type="submit" class="bLink" vip="VIP1" value="Adquirir" />
  </div>
</div>

<div id="quadro>
	<div id="texto">
	//texto vip2
	<input name="Submit" type="submit" class="bLink" vip="VIP2" value="Adquirir" />
  </div>
</div>

<div id="quadro>
	<div id="texto">
	//texto vip3
	<input name="Submit" type="submit" class="bLink" vip="VIP3" value="Adquirir" />
  </div>
</div>


<div id="quadro>
	<div id="texto">
	//texto vip4
	<input name="Submit" type="submit" class="bLink" vip="VIP4" value="Adquirir" />
  </div>
</div>
</form>

 

 

 

Bom eu preciso pegar o elemento VIP pra eu identifcar qual vip o cara clico e gravar dentro de um $_SESSION['vip']

então fiz isso

 

$(document).ready(function(){
	  $(".bLink").click(function(){
		var $this = $( this ); 
		var $vip = $this.attr('vip');
		$.post("pages/session.php", {vip: $vip}, function(valor){
			});
	})
})

 

 

 

<?php
session_start();
	if(isset($_POST['vip'])){
           $_SESSION['vip'] = $_POST['vip'];
         }
?>

Porem ele funciona so hora que ele quer.... Se eu adicionar alert($vip)

 

 

 

$(document).ready(function(){
	  $(".bLink").click(function(){
		var $this = $( this ); 
		var $vip = $this.attr('vip');
		$.post("pages/session.php", {vip: $vip}, function(valor){
			})
                    alert($vip);
	})
})

 

 

Ele funciona a qualquer momento porem não quero adicionar alert alguem sabe me explicar o motivo ?

 

 

Agradeço deus de ja!

Compartilhar este post


Link para o post
Compartilhar em outros sites

var $this = $( this );

var $vip = $this.attr('vip');

:seta:

var vip = $(this).attr('vip');

 

 

alert($vip);

:seta:

alert(vip);

 

 

obs: é apenas sugestão.. não é garantia de que funcionará pois podem existem outros erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse caso ai, vc precisa de 4 forms diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

depende. Responda as perguntas:

 

Pq vc usou submit ?

Vc tem algum input text ?

Pq vc usou um formulário ?

Oq vc chama de "atriputo nao HTML" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa, mas por que vc está usando ajax ?

 

da forma que está, vc não tem nenhum motivo para usar ajax. Bastaria fazer o "adquirir" ser um input checkbox, e então capturar com get ou post, e ai escrever na tua session.

 

Irá ter o mesmo funcionamento, logo vc está usando ajax de forma errada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"funciona" com o alert(), pq vc ta fazendo ajax assincrono.

Como o submit ocorre muito rápido, não dá tempo do ajax terminar a requisição.

 

Ai qndo vc coloca o alert(), vc obriga o usuario a esperar o ajax assincrono terminar, e isso faz com que funcione.

 

Então, novamente. Vc está usando ajax da forma errada.

Mas se quer continuar assim, oq vc pode fazer é atrasar o submit, com um setTimeout, por exemplo(solução porca e gambiarra)

Compartilhar este post


Link para o post
Compartilhar em outros sites

não não..

 

vc tem q atrasar o submit, e não o post.

Seria isso aqui:

$('#form1').submit(function(){
   window.setTimeout(function(){
       $('#form1').submit();
   }, 500);
   return false;
});
mas volto a repetir, isso é pura gambiarra, só pq vc ta usando ajax da forma errada.

O melhor seria vc parar de usar ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites
$(document).ready(function(){

$('#avancar').submit(function(){

window.setTimeout(function(){

$('#avancar').submit();

}, 500);

return false;

});

});

$(document).ready(function(){

$(".bLink").click(function(){


var vip = $(this).attr('vip');

$.post("pages/session.php", {vip: vip});


});


})



fiz isso o botao nao clica Oo

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa função do submit, é no form. Quem tem o id="avancar" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendeu agora porque uma pessoa mais experiente aconselhou outro caminho?

 

se vc tivesse prestado atenção desde o começo nos conselhos, não estaria enrolado nisso.

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.