Ir para conteúdo

POWERED BY:

Arquivado

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

Nandoluizpm

'Diálogo' entre variáveis Javascript

Recommended Posts

Fala galera do iMasters!

esses dias encontrei dificuldades para sair de um problema com um projeto pessoal:

 

estou desenvolvendo um video-chat que possui dois arquivos PHP que contêm blocos de código Javascript. Quando um moderador abre uma sala e se conecta, a função addStrem() do aquivo do moderador é executada:

<script type="text/javascript">
function addStream(stream)
{
   if (stream.connection.connectionId == session.connection.connectionId)
   {
var streamIdMod = stream.streamId;
       return;
   }
...
}
</script>

 

A variável 'streamIdMod' (acima) armazena um valor que eu preciso utilizar para fazer um 'if' no arquivo dos visitantes:

<script type="text/javascript">
function addStream(stream)
{
   var container = document.createElement('div');

   if(streamId == 'variável que recebe o valor de streamIdMod')
   {
       //atribui um valor
       container.className = "subscriberModerador";
       ...
   }
   else
   {
       //atribui outro valor
       container.className = "subscriberContainer";
       ...
   }
 ...
}
</script>

 

Para fazer essa transição usei SESSION (PHP), tendo que passar a informação de Javascript -> PHP, passar a informação para outro formulário, e repassar a informação de PHP -> Javascript onde e usada no exemplo acima.

 

Vejam como ficou:

session_start("dadosStream");
$_SESSION["streamModerador"] = "";

 ...
<script type="text/javascript">
function addStream(stream)
{
   if (stream.connection.connectionId == session.connection.connectionId)
   {
var streamIdMod = stream.streamId;
       return;

       <?php
    $_SESSION['streamModerador'] = "<script>document.write(streamIdMod)< /script>"; 
?>
   }
...
}
</script>

 

Recebendo no outro formulário:

session_start("dadosStream");
$streamIdMod = $_SESSION["streamModerador"];

  ...
<script type="text/javascript">
var stream_moderador = '<?php print $streamIdMod; ?>';

function addStream(stream)
{	
   var container = document.createElement('div');

   if(streamId == stream_moderador)
   {
       //atribui um valor
   }
   else
   {
       //atribui outro valor
   }
  ...
}
</script>

 

O problema é que a $_SESSION['streamModerador'] não recebendo esse valor setado na função addStream() e como consequência ele está considerando o valor inicial (vazio). Já tentei tirando as aspas do bloco PHP que armazena o Javascript e não mudou nada. Creio que seja simples, só quero transportar esse valor e usá-lo em outro código. Por favor, me ajudem!!!

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso aqui ta bém bagunçado não?

É javascript? É PHP? Se for javascript porque você esta abrindo e fechando tag script sem fechar a tag anteriro?

 

Não entendi nada deste trecho ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me desculpa ai. Estava apressado quando mandei e nem verifiquei direito. São dois arquivos PHP contendo blocos Javascript em cada. Tinha esquecido de colocar as tags '<script>'. Já alterei o primeiro post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está dando um return antes de igualar o valor no PHP. Sendo assim ele sai da função antes de atribuir o valor.

Mas mesmo assim ainda acho que da forma que está não funciona ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie uma página php

 

-> GetUserRole.php

<?php 
session_start();
echo $_SESSION['streamModerador']; 
?>

estude um pouco sobre jQuery e faça uma requisição ajax nesse script acima dessa maneira:

<script type="text/javascript">
var ajax;
//iniciando requisição
ajax = $.ajax({
 url: "GetUserRule.php"
});

//criando callback para estado sucess 
ajax.done(function(stream_moderador) { 
 alert(stream_moderador );
});
</script>

 

sempre que quiser resgatar o stream_moderador no cliente basta usar esse script acima e implementar o callback da maneira que voce precisa..

Compartilhar este post


Link para o post
Compartilhar em outros sites

precisa da o load no jQuery..

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
var ajax;
//iniciando requisição
ajax = $.ajax({
 url: "GetUserRule.php"
});

//criando callback para estado sucess 
ajax.done(function(stream_moderador) { 
 alert(stream_moderador );
});
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você add o cod dentro do onload para q o jQuery funcione?

 

 

$(document).ready(function(){

//codigo requisição ajax

});

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.