Autor Tópico: [RESOLVIDO] - Passar variável js para variável sc  (Lida 1624 vezes)

Marculino

  • Iniciante
  • **
  • Mensagens: 59
    • Email
Re:Passar variável js para variável sc
« Responder #15 Online: Maio 17, 2016, 02:29:16 pm »
Pronto fiz sua lição de casa:
         /**
             * Selecting a field from another table
             */
            //
           
            //ou aqui eu pego o valor do x e coloco na variavel do sc
            $variavelphp_local = "<script>(objeto.value || objeto.options[objeto.selectedIndex].value)</script>";
           
            // Check for record
            $check_sql = "SELECT convites_cotacao_idconvite"
               . " FROM produto_cotado"
               . " WHERE idproduto_cotado = '" . $minha_variavel_sc  . "'";
            sc_lookup(rs, $check_sql);

            if (isset({rs[0][0]})){     // Row found
               ?>minhatr.dataset.idproselect=x;<?
                 ?>minhatr.dataset.idconvite=<? echo {rs[0][0]};
            }else{     // No row found
           
            }
         ?>

isso não funciona
<script>
function mudavaluetr(objeto,i) {
         //aqui eu pego o valor da select e jogo em x
         var x = (objeto.value || objeto.options[objeto.selectedIndex].value);
         <?
         /** Selecting a field from another table  */
           
              //ou aqui eu pego o valor do x e coloco na variavel do sc (não funciona da um erro de tokem)
              //dever ser porque eu ja estou dentro de uma função js
            $variavelphp_local = "<script>(objeto.value || objeto.options[objeto.selectedIndex].value)</script>";
           
            // Check for record
            $check_sql = "SELECT convites_cotacao_idconvite"
               . " FROM produto_cotado"
               . " WHERE idproduto_cotado = '" . $minha_variavel_sc  . "'";
            sc_lookup(rs, $check_sql);

            if (isset({rs[0][0]})){     // Row found
               ?>minhatr.dataset.idproselect=x;<?
                 ?>minhatr.dataset.idconvite=<? echo {rs[0][0]};
            }else{     // No row found
           
            }
         ?>
         
      }
   </script>


Willian Fernando

  • Expert
  • *****
  • Mensagens: 1148
  • .....
    • Email
Re:Passar variável js para variável sc
« Responder #16 Online: Maio 17, 2016, 02:50:00 pm »
envia via AJAX , o Haroldo deixou um exemplo.

Marculino

  • Iniciante
  • **
  • Mensagens: 59
    • Email
Re:Passar variável js para variável sc
« Responder #17 Online: Maio 17, 2016, 03:15:10 pm »
Pronto fiz sua lição de casa:
         /**
             * Selecting a field from another table
             */
            //
           
            //ou aqui eu pego o valor do x e coloco na variavel do sc
            $variavelphp_local = "<script>(objeto.value || objeto.options[objeto.selectedIndex].value)</script>";
           
            // Check for record
            $check_sql = "SELECT convites_cotacao_idconvite"
               . " FROM produto_cotado"
               . " WHERE idproduto_cotado = '" . $minha_variavel_sc  . "'";
            sc_lookup(rs, $check_sql);

            if (isset({rs[0][0]})){     // Row found
               ?>minhatr.dataset.idproselect=x;<?
                 ?>minhatr.dataset.idconvite=<? echo {rs[0][0]};
            }else{     // No row found
           
            }
         ?>
<script>
function mudavaluetr(objeto,i) {
      //aqui eu pego o valor da select e jogo em x
      var x = (objeto.value || objeto.options[objeto.selectedIndex].value);
            
      <?
      
      $valor = $_SESSION["valor"];
      /**
          * Selecting a field from another table
          */
         //
         //ou aqui eu pego o valor do x e coloco na variavel do sc (não funciona), deve ser porque estamos escrevendo um scrpt dentro de outro
                        $variavelphp_local = "<script>(objeto.value || objeto.options[objeto.selectedIndex].value)</script>";
         
         // Check for record
         $check_sql = "SELECT convites_cotacao_idconvite"
            . " FROM produto_cotado"
            . " WHERE idproduto_cotado = '" . $valor . "'";
         sc_lookup(rs, $check_sql);

         if (isset({rs[0][0]})){     // Row found
            ?>minhatr.dataset.idproselect=x;<?
              ?>minhatr.dataset.idconvite=<? echo {rs[0][0]};
         }else{     // No row found
         
         }
      ?>
      
   }
</script>

Marculino

  • Iniciante
  • **
  • Mensagens: 59
    • Email
Re:Passar variável js para variável sc
« Responder #18 Online: Maio 17, 2016, 03:43:57 pm »
Vamos tentar pelo método de sessão:
eu criei um arquivo chamado meu_script.php, dentro dele coloquei:
<?php
// Start the session
   session_start();
   $_SESSION["valor"] = $_POST['valor'];
   //$valor = $_POST['valor'];
?>


fui no menu biblioteca e criei a biblioteca com nome de meu_script de adicionei o arquivo meu_script.php

no meu codigo esta assim:
[idcotacao]=14;
?>
<!DOCTYPE html>
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Gerar pedido</title>
    type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script>
   function register(x){
        $.post('meu_script.php',{
           valor:x
        },function(){
           // ação quando for concluída a solicitação
         });
      }

function mudavaluetr(objeto,i) {
      //aqui eu pego o valor da select e jogo em x
      var x = (objeto.value || objeto.options[objeto.selectedIndex].value);
      //aqui eu chamo a função register para gravar o valor de x no arquivo meu_script.php
               register(x);
      <?
      //aqui eu pego o valor da sessão que foi gravado no arquivo meu_script
      $valor = $_SESSION["valor"];
      /**
          * Selecting a field from another table
          */
         //
         //aqui tenho que que pe
         //$variavelphp_local = echo '<script>document.write(x);</script>';
         
         // Check for record
         $check_sql = "SELECT convites_cotacao_idconvite"
            . " FROM produto_cotado"
            . " WHERE idproduto_cotado = '" . $valor . "'";
         sc_lookup(rs, $check_sql);

         if (isset({rs[0][0]})){     // Row found
            ?>minhatr.dataset.idproselect=x;<?
              ?>minhatr.dataset.idconvite=<? echo {rs[0][0]};
         }else{     // No row found
         
         }
      ?>
      
   }
   </script>
</head>

  <body>
 <?
   aqui eu acredito que devo falar que meu arquivo meu_script.php existe
  tentei usar aqui assim: sc_include_library("prj", "meu_script", "meu_script.php", true, true);
 não funciona da um erro logo que eu crio a pagina
Failed to load resource: the server responded with a status of 404 (Not Found)
http://127.0.0.1:8081/scriptcase/app/p001_cotacao/_lib/css/Green/Green_error.css

se eu coloco este sc_include("meu_script.php", "prj");
na hora que eu crio a pagina não da erro. mas na hora que afunção é executado para gravar a variavel ele fala que o arquivo meu_script.php não existe

 ?>
</body>

</html>

<?
o problema:

não estou sabendo chamar o arquivo meu_script.php que esta na biblioteca

Jailton

  • Expert
  • *****
  • Mensagens: 2030
Re:Passar variável js para variável sc
« Responder #19 Online: Maio 17, 2016, 05:05:26 pm »
Marculino, eu acessei mais cedo o link que você disponibilizou ao site demo para ver o que  você, pretendia, como é um grid consulta com javascript dinâmico é mais difícil de pegar a posição.

Como sugestão acho que daria mais certo você usar um GRID EDITÁVEL, ai é só colocar os campos que não vai usar como label e deixar o do SELECT da cotação liberado para o cliente selecionar entre
os produtos/fornecedores disponíveis, o que deseja, ao final você pode usar um botão em cima para 'Efetuar o Pedido'.
http://www.scriptcase.com.br/recursos/grid-editavel-php/

Já até tinham feito esta pergunta sobre uma campo editável em uma GRID só consulta igual você usou, e essas foram as dicas:
http://www.scriptcase.com.br/forum/index.php?topic=11487.0
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

Marculino

  • Iniciante
  • **
  • Mensagens: 59
    • Email
Re:Passar variável js para variável sc
« Responder #20 Online: Maio 18, 2016, 09:01:42 am »
Marculino, eu acessei mais cedo o link que você disponibilizou ao site demo para ver o que  você, pretendia, como é um grid consulta com javascript dinâmico é mais difícil de pegar a posição.

Como sugestão acho que daria mais certo você usar um GRID EDITÁVEL, ai é só colocar os campos que não vai usar como label e deixar o do SELECT da cotação liberado para o cliente selecionar entre
os produtos/fornecedores disponíveis, o que deseja, ao final você pode usar um botão em cima para 'Efetuar o Pedido'.
http://www.scriptcase.com.br/recursos/grid-editavel-php/

Já até tinham feito esta pergunta sobre uma campo editável em uma GRID só consulta igual você usou, e essas foram as dicas:
http://www.scriptcase.com.br/forum/index.php?topic=11487.0

Não conseguirei fazer com grid editavel porque aquela tabela é montada com referencia a duas tabelas diferente do banco, eu faço assim:

SELECT  DISTINCT pc.id_produto,
                  p.nome,
                  c.idcotacao,
                  c.titulo,
                  c.data_incio,
                  c.data_fim,
                  cc.situacao,
                  pc.qtd,
                  pc.unidade_de_medida
                                     
                  
            FROM cotacoes c
            INNER JOIN convites_cotacao cc
            ON cc.cotacoes_idcotacao = c.idcotacao
            INNER JOIN produto_cotado pc
            ON pc.convites_cotacao_idconvite = cc.idconvite
            INNER JOIN produtos p
            ON p.idproduto = pc.id_produto
            WHERE c.idcotacao =[idcotacao] and cc.situacao = 'Preenchida'

depois disso para cada registro no meu campo que tem o select eu faço um consulta referindo a outra tabela diferente.
O que estou tentando fazer eu consigo em html sem usar o sc porem estava tentando usar os recursos do scriptcase. Pelo dificuldade que estou tendo acho que irei mesmo ter que fazer fora do scriptcase, terei que criar arquivo de conexão, fazer as minas consultas, em fim uma pagina fora do scriptcase.

Mas eu agradeço a colaboração de todos.

Jailton

  • Expert
  • *****
  • Mensagens: 2030
Re:Passar variável js para variável sc
« Responder #21 Online: Maio 18, 2016, 09:22:05 am »
Não desista tão fácil das coisas....

Passa uma MP para o Haroldo Passos:
http://www.scriptcase.com.br/forum/index.php?action=profile;u=4087

Ele sabe usar JQuery Avançado com o SC, possivelmente ele pode resolver seu problema, mas use uma MP e veja uma consultoria com ele.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

Marculino

  • Iniciante
  • **
  • Mensagens: 59
    • Email
Re:Passar variável js para variável sc
« Responder #22 Online: Maio 18, 2016, 02:24:00 pm »
Não desista tão fácil das coisas....

Passa uma MP para o Haroldo Passos:
http://www.scriptcase.com.br/forum/index.php?action=profile;u=4087

Ele sabe usar JQuery Avançado com o SC, possivelmente ele pode resolver seu problema, mas use uma MP e veja uma consultoria com ele.

Jailton, muito obrigado pela dica, mandei um mp para o Haroldo, vou aguardar para ver se ele pode ajudar, eu tendo algum resultado positivo eu posto aqui para todos aprendermos

flaviomorais

  • Avançado
  • ****
  • Mensagens: 348
    • Email
Re:Passar variável js para variável sc
« Responder #23 Online: Maio 18, 2016, 03:12:42 pm »
Não serviria gravar um cookie no javascript e depois ler no php ?

Marculino

  • Iniciante
  • **
  • Mensagens: 59
    • Email
Re:Passar variável js para variável sc
« Responder #24 Online: Maio 18, 2016, 03:47:29 pm »
Não serviria gravar um cookie no javascript e depois ler no php ?


Opa flavio, eu nunca mexi com cookie, mas a minha pegunta é o seguinte:
A minha função js é esta, com o cookie eu consigo altera ele em js e usar ele logo em seguida? a minha pagina não esta sofrendo e nem pode fazer um reload.

passo a passo de como a função tem que funcionar:

1º - o cala clica no meu campo select e entra nesta função

function mudavaluetr(objeto,i) { //inicio da função
      // 2º - aqui eu pego o valor da select e jogo em x
      var x = (objeto.value || objeto.options[objeto.selectedIndex].value);
      <?
           3º - aqui eu tenho que pegar o valor de x que é uma variavel js e usar na minha select aqui abaixo que é comando do scriprcase   
         // Check for record
         $check_sql = "SELECT convites_cotacao_idconvite"
            . " FROM produto_cotado"
            . " WHERE idproduto_cotado = '" . o x do js tem que chegar aqui. "'";
         sc_lookup(rs, $check_sql);

         if (isset({rs[0][0]})){     // Row found
            ?>minhatr.dataset.idproselect=x;<?
              ?>minhatr.dataset.idconvite=<? echo {rs[0][0]};
         }else{     // No row found
         
         }
      ?>
     
   } //fim da função
   </script>

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Passar variável js para variável sc
« Responder #25 Online: Maio 18, 2016, 03:50:51 pm »
Você tem que usar ajax para fazer isso.

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Passar variável js para variável sc
« Responder #26 Online: Maio 18, 2016, 04:01:32 pm »
O que você quer é quando o usuário selecionar um fornecedor, alterar o valor de idconvite do tr daquele produto para um que está salvo no banco de dados? É isso?

Marculino

  • Iniciante
  • **
  • Mensagens: 59
    • Email
Re:Passar variável js para variável sc
« Responder #27 Online: Maio 18, 2016, 04:30:53 pm »
O que você quer é quando o usuário selecionar um fornecedor, alterar o valor de idconvite do tr daquele produto para um que está salvo no banco de dados? É isso?

isso mesmo, quando o cara escolher o fornecedor ele vai executar minha função e ela tem que fazer este passos:
1º - ele pegar o valor do campo select
2º ele passa este valor para a minha consulta que esta dentro da minha função
3º troca os data-sete da minha tr

a função esta ai
1º O cliente clicou no campo select e le vai chamar a função abaixo
function mudavaluetr(objeto,i) { //inicio da função
      // 2º - aqui eu pego o valor da select e jogo em x
      var x = (objeto.value || objeto.options[objeto.selectedIndex].value);
      <?
           3º - aqui eu tenho que pegar o valor de x que é uma variavel js e usar na minha select aqui abaixo que é comando do scriprcase   
         // Check for record
         $check_sql = "SELECT convites_cotacao_idconvite"
            . " FROM produto_cotado"
            . " WHERE idproduto_cotado = '" . o x do js tem que chegar aqui. "'";
         sc_lookup(rs, $check_sql);
         //3º aqui eu atribuo o data set da mina tr confor o que o script case trouxe da minha consulta.
         if (isset({rs[0][0]})){     // Row found
            ?>minhatr.dataset.idproselect=x;<?
              ?>minhatr.dataset.idconvite=<? echo {rs[0][0]};
         }else{     // No row found
         
         }
      ?>
     
   } //fim da função
   </script>


Marculino

  • Iniciante
  • **
  • Mensagens: 59
    • Email
Re:Passar variável js para variável sc
« Responder #28 Online: Maio 18, 2016, 04:36:09 pm »
Você tem que usar ajax para fazer isso.

Na verdade não, nem precisaria ser feito em blanck, a regra é eu conseguir olhar produto por produto qual fonecedor foi selecionado e depois colocar isso tudo em uma outra tabela.
Tentei fazer em consulta com botão rum, não consegui, tentei fazer em controle, mas não funciona porque os valores exibidos veem de varias tabelas.
Eu pensei no blank porque eu posso fazer o seguinte:
Quando o cara escolhe o fornecedo eu atribuo um data set da minha TR com o valor que ele selecionou e depois no botão que eu vou colocar para efetuar o pedido eu posso percorre minha tabela toda pegando os valores das minhas tr e fazendo o insert. isso da para fazer naturalmente em php e js.
Estou aberto a sugestões

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Passar variável js para variável sc
« Responder #29 Online: Maio 18, 2016, 04:39:00 pm »
Segue um código não testado, por isso passível a erros:

Criar aplicação blank appBlank:

Código: [Selecionar]
$_sql = "
SELECT
    convites_cotacao_idconvite
FROM
    produto_cotado
WHERE
    idproduto_cotado = {$_POST['IdProduto']}
";

sc_lookup(ds, $_sql);

if  (!empty($drs[0][0]))
{
    echo $drs[0][0];
}


Funções javascript:

Código: [Selecionar]
function ajaxSelect(IdProduto)
{
    $.post( "../appBlank/appBlank.php", {IdProduto})
    .done(function( data ) {
return data;
   });
}

function mudavaluetr(objeto,i) {
      var x = (objeto.value || objeto.options[objeto.selectedIndex].value);
      minhatr.dataset.idproselect=x;
  minhatr.dataset.idconvite=ajaxSelect(x);
   }