Jump to content

POWERED BY:

Archived

This topic is now archived and is closed to further replies.

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!

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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 ...

Share this post


Link to post
Share on other 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..

Share this post


Link to post
Share on other 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>

Share this post


Link to post
Share on other sites

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

 

 

$(document).ready(function(){

//codigo requisição ajax

});

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.