Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda - Jquery+PHP div e duvidas


Enigma_avatar

Pergunta

Bom pessoal antes de tudo quero avisar que já pesquisei bastante, o erro parece ser bem simples, porem revisando e revirando , não conseguir fazer por isto estou aqui novamente para pedir um help. me apotem o erro:

estou tentando fazer um esqueminha de desafios onde o player logado convida o outro.

*primeiro listo os usuários online para passar as variaveis id e nome para a pagina php que vai fazer o insert

trecho da pagina usuariosonline.php ( chamado via include na pagina index.php)

<div id="duel"><a href="desafiar.php?id=<?php echo $dnn['id']; ?>&nick=<?php echo $dnn['username']; ?>">Duel</a></div>

ao clicar no link é feito o insert e era pra exibir o resultado na div #conteudo

codigo da pagina que pega o id e o nick do ususario logado(desafiante) e a de alguém dos listados (desafiados)

paginadesafio.php (esta inserindo no bd corretamente)

<?php
include('conexao.php');
?>
<?php
if(isset($_SESSION['username']))
{

 mysql_query("INSERT INTO duel (id, desafianteid, desafiantenick, status, desafiadoid, desafiadonick, resultadofinal) VALUES ('', '" . $_SESSION['userid'] . "', '" . $_SESSION['username'] . "', 'pendente', '" . $_GET["id"] . "', '" . $_GET["nick"] . "', '0')") or die(mysql_error());

echo " Seu desafio foi enviado com sucesso, aguarde a confirmacao do seu oponente ";
}
else
{
	echo 'Voce nao esta logado.';
}
?>

e na pagina index estou usando o seguinte codigo para puxar o resultado da paginadesafio.php para exibir o resultado na div conteudo.

<script type="text/javascript">
$(document).ready(function() {
	var pagina = $(this).attr('href');
        $("#duel a").click(function(event){
             event.preventDefault(); 
	     $("#conteudo").load(pagina); 
        });
});
</script>

Desde já agradeço, e aceito sugestões ( uma luz para seguir) quanto a melhoria de desempenho do código para fazer esta mesma função,

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

O que você deveria estar usando é um $.get() em vez de um $.load(). E o $(this) deve estar dentro do evento que dispara a função.

<script type="text/javascript">
$(document).ready(function() {
	//Só Deus sabe quem é o $(this) aqui
	$("#duel a").click(function(event){
		#Aqui o $(this) é o <a> que foi clicado
		event.preventDefault();
		//O get faz uma requisição de uma url e pode executar funções com o valor de retorno
		$.get($(this).attr('href'), function(data){
			//Só oara ver se está funcionando, depois você pôe a sua função normal
			alert(data);
			//O append irá escrever o valor de data dentro de #conteudo
	     		//$("#conteudo").append(data);
     		//Diz que você está esperando um HTML, poderia ser XML, JSON, etc...
		}, 'html');
	});
});
</script>

Outro problema é a forma como você está esperando os dados do usuário no paginadesafio.php. Lá você espera uma requisição que passe um COOCKIE de sessão para que o PHP identifique o usuário, porém se eu não me engano o $.get() ou o $.load() não vão enviar esse COOCKIE, logo você deve passar esse valor para paginadesafio.php via GET, é só alterar a forma de escrever o valor de href em usuariosonline.php.

<div id="duel"><a href="desafiar.php?user=<?php echo $_SESSION['userid']; ?>&id=<?php echo $dnn['id']; ?>&nick=<?php echo $dnn['username']; ?>">Duel</a></div>

E acrescentar uma consulta no paginadesafio.php

<?php
include('conexao.php');
?>
<?php
if(isset($_GET['userid'])) {
	$userid = mysql_query("SELECT nick FROM users WHERE userid = ".$_GET['userid']) or die(mysql_error());

	$userid = mysql_fetch_assoc($userid);

	$userid = $userid['userid'];

	 mysql_query("INSERT INTO duel (id, desafianteid, desafiantenick, status, desafiadoid, desafiadonick, resultadofinal) VALUES ('', '" . $userid . "', '" . $_SESSION['username'] . "', 'pendente', '" . $_GET["id"] . "', '" . $_GET["nick"] . "', '0')") or die(mysql_error());

	echo " Seu desafio foi enviado com sucesso, aguarde a confirmacao do seu oponente ";
} else {
	echo 'Voce não esta logado.';
}
?>

Se não for isso é quase isso rsrsrs.

Espero ter ajudado.

Tudo de bom.

Editado por Markus Magnus
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...