Passar valores JS para Velocity

8 respostas
andre_a_s

Pessoal, alguem sabe como passar um valor de variavel JavaScript para o Velocity? Algo assim:

function doSubmit(nomeForm){ #set($temp = nomeForm) }

Qualquer ajuda é bem vinda! :lol:

8 Respostas

aborges

No way !

O Javascript eh executado localmente, depois da pagina jah ter sido processada/parseada pelo servidor!

O q vc pode fazer eh seu javascript fazer mandar um valor para o servidor pro mesmo ser lido pelo velocity, tipo:

#if(!req.getParameter("formName")
    <script>
       location.href=location.href + "?formName=abcd"
    </script>
#else
 #set($temp = req.getParameter("formName")) 
#end
aborges

Soh uma duvida.

Pra q vc quer fazer isso ?? :shock: :shock: :shock:

andre_a_s

Entendi....
Quero fazer isso porque estou usando IFRAME.
Mas eu terei n IFRAMEs e terá um link que irá abrir(mostrar) eles a partir de uma DIV(Estou fazendo um menu de árvore). O mesmo link que abre a DIV dá um submit no form do IFRAME e assim traz os registros.
O problema está quando o usuario clicar denovo no link para fechar uma das ramificações da árvore, pois quando ele clicar ele vai dar submit de novo, então eu teria que dar o submit a parti de de uma function no javascript e passar o nome do IFRAME como parametro, seria algo assim:

function doSubmit(nomeIframe){
   var x = nomeIframe;
   document.x.form1.submit();
}

Pq do jeito que está, ele está dando o submit toda hora que o usuario clicar no link :(

A parte que usa o IFRAME está assim:

#foreach($t in $classes)
 <tr>
  <td>
    <a href="javascript:abreAlunos('$t')" onClick="javascript:document.id_${t}.form1.submit()">$t</a>
  </td>
  <td>
    <p style='margin-left: 10.0pt; margin-top: 0.0pt;'>
    <div id="$t" style="display:none;">
     <table border="1" id="tbl">
       <tr>
        <td>
          <iframe frameborder="0" height="200" id="id_${t}" name="name_${t}" src="mural/alunos.vm?turma=$t" width="250"></iframe>
        </td>
      </tr>
     </table>
    </div>
   </p>
  </td>
 </tr>
#end
aborges

Qd vc configura o src no seu IFRAME ele jah nao faz a requisicao sozinho no servidor ??? Pra q o post?

Vc nao pode simplismente mostrar/esconder o IFRAME na funcao do seu link?

Em outras palavras, trocar:

<a href="javascript:abreAlunos('$t')" onClick="javascript:document.id_${t}.form1.submit()">

por

<a href="javascript:abreAlunos('$t')" >
andre_a_s

É exatamente isso que eu não quero!!!
Só quero que o iframe receba o submit quando o usuario clicar no link, assim a aplicação noa precisa carregar tudo pra mostrar a arvore, só vai mostrar quando o usuario clicar, fica bem mais leve(e o cliente quer assim!!!)
:smiley:

aborges

Saquei…

Entao deixe o src do seu iframe em branco e no script faz assim:

<script> function abreAlunos(item){ var seuFrame = //Maneira q vc jah ta utilizando para descobrir o iframe if(seuIFrame.src==""){ seuFame.src = "mural/alunos.vm?turma=" + item; } }

Desta maneira, ele soh ira carregar qd vc realmente clicar no link !

Nao sei se funciona, mas dah uma testada!

andre_a_s

Não não!!! Acho que vc se confundiiu!!! :slight_smile:
Oo que eu quero não é definir o src do IFRAME, isso eu ja fiz, o q eu quero é dar um submit no form que está dentro do IFRAME :slight_smile:

andre_a_s

Humm… se bem que pensanod melhor acho que se eu mudar um pouco a rotina fica até mais facil fazer do seu jeito… :wink:

Criado 2 de agosto de 2004
Ultima resposta 2 de ago. de 2004
Respostas 8
Participantes 2