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

Como passar variável PHP para JavaScript


Carlos Rocha

Pergunta

Ola pessoal.

Não tenho muita esperiencia em JS.

Tenho o script abaixo e preciso trocar onde tem <?=$campo;?> por uma variavel javbascript var campo;

Na verdade, estava usando como um arquivo php e esta dando certo mas ai tenho que fazer include na pagina.

Agora quero apenas fazer referencia do Js.

var campo = "cidades"; -->> Pois é. preciso que o valor dessa variavel substitua em todos os luigares que esta o <?=$campo:> do php mas não sei com,o fazer essa convatenação.
    function Dados<?=$campo;?>(valor) {
      /*verifica se o browser tem suporte a ajax */
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
            }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do Ajax");
               ajax = null;
            }
         }
      }
      /*se tiver suporte ajax */
      if(ajax) {
         /*deixa apenas o elemento 1 no option, os outros são excluídos */
         document.forms[0].<?=$campo;?>.options.length = 1;
         
         idOpcao  = document.getElementById("opcoes<?=$campo;?>");
         
         ajax.open("POST", "<?=$campo;?>.php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            /*enquanto estiver processando...emite a msg de carregando */
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
            }
            /*após ser processado - chama função processXML<?=$campo;?> que vai varrer os Dados<?=$campo;?>*/
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXML<?=$campo;?>(ajax.responseXML);
               }
               else {
                   /*caso não seja um arquivo XML emite a mensagem abaixo */
                   idOpcao.innerHTML = "--Primeiro selecione o estado--";
               }
            }
         }
         /*passa o código do estado escolhido */
         var params = "estado="+valor;
         ajax.send(params);
      }
   }
   
   function processXML<?=$campo;?>(obj){
      /*pega a tag <?=$campo;?> */
      var dataArray   = obj.getElementsByTagName("<?=$campo;?>");
      
      /*total de elementos contidos na tag <?=$campo;?> */
      if(dataArray.length > 0) {
         /*percorre o arquivo XML paara extrair os Dados<?=$campo;?> */
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            /*contéudo dos campos no arquivo XML */
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
            
            /*cria um novo option dinamicamente   */
            var novo = document.createElement("option");
                /*atribui um ID a esse elemento */
                novo.setAttribute("id", "opcoes<?=$campo;?>");
                /*atribui um valor */
                novo.value = codigo;
                /*atribui um texto */
                novo.text  = descricao;
                /*finalmente adiciona o novo elemento */
                document.forms[0].<?=$campo;?>.options.add(novo);
         }
      }
      else {
        /*caso o XML volte vazio, printa a mensagem abaixo */
        idOpcao.innerHTML = "--Primeiro selecione o estado--";
      }      
   }

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

Olhe essa linha:

var campo = "cidades"; -->> Pois é. preciso que o valor dessa variavel substitua em todos os luigares que esta o <?=$campo:> do php mas não sei com,o fazer essa convatenação.
Você não pode alterar um valor PHP via javascript ! Você teria que, ao invés de utilizar <?=$campo;?> para escrever os valores, passar esse valor para uma variável JavaScript e depois você irá modificar a variável do JavaScript ! Ficaria assim:
campo = "<?=$campo;?>"
E, quando precisar alterar o valor dessa variável você pode fazer normalmente !
campo = "cidades"

Obs.:

Vou modificar o tópico do tópico

Link para o comentário
Compartilhar em outros sites

  • 0

pois é, mas não é isso que eu quero não:

Veja como estava funcionando com o arquivo em .php:

cidade.php

<?
$campo = "cidade";
?>
<script language="JavaScript">
    function Dados<?=$campo;?>(valor) {
      /*verifica se o browser tem suporte a ajax */
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
            }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do Ajax");
               ajax = null;
            }
         }
      }
      /*se tiver suporte ajax */
      if(ajax) {
         /*deixa apenas o elemento 1 no option, os outros são excluídos */
         document.forms[0].<?=$campo;?>.options.length = 1;
         
         idOpcao  = document.getElementById("opcoes<?=$campo;?>");
         
         ajax.open("POST", "<?=$campo;?>.php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            /*enquanto estiver processando...emite a msg de carregando */
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
            }
            /*após ser processado - chama função processXML<?=$campo;?> que vai varrer os Dados<?=$campo;?>*/
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXML<?=$campo;?>(ajax.responseXML);
               }
               else {
                   /*caso não seja um arquivo XML emite a mensagem abaixo */
                   idOpcao.innerHTML = "--Primeiro selecione o estado--";
               }
            }
         }
         /*passa o código do estado escolhido */
         var params = "estado="+valor;
         ajax.send(params);
      }
   }
   
   function processXML<?=$campo;?>(obj){
      /*pega a tag <?=$campo;?> */
      var dataArray   = obj.getElementsByTagName("<?=$campo;?>");
      
      /*total de elementos contidos na tag <?=$campo;?> */
      if(dataArray.length > 0) {
         /*percorre o arquivo XML paara extrair os Dados<?=$campo;?> */
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            /*contéudo dos campos no arquivo XML */
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
            
            /*cria um novo option dinamicamente   */
            var novo = document.createElement("option");
                /*atribui um ID a esse elemento */
                novo.setAttribute("id", "opcoes<?=$campo;?>");
                /*atribui um valor */
                novo.value = codigo;
                /*atribui um texto */
                novo.text  = descricao;
                /*finalmente adiciona o novo elemento */
                document.forms[0].<?=$campo;?>.options.add(novo);
         }
      }
      else {
        /*caso o XML volte vazio, printa a mensagem abaixo */
        idOpcao.innerHTML = "--Primeiro selecione o estado--";
      }      
   }
</script>
Pois é. Agorta não quero mais o arquivo em php e sim em .js então não terei mais como usar a variavel php<?=$campo;?> e sim terei que usar um jaascript. Mas, como fazer para usar a variavbel javascript campos em todos os lugars onde esta o <?=$campo;?> do php? cidade.js
var campos = "ciadade";  // --> aqui quero fazer do mesmo jeito do arquivo em .php para substituilo pelo js e, em vez de usar a variavel php pelo arquivo, usar a javascript. Mas ai esta a duvida: Como colocar ela nos mesmos lugares onde esta a s variavbeis php?
    function Dados<?=$campo;?>(valor) {
      /*verifica se o browser tem suporte a ajax */
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
            }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do Ajax");
               ajax = null;
            }
         }
      }
      /*se tiver suporte ajax */
      if(ajax) {
         /*deixa apenas o elemento 1 no option, os outros são excluídos */
         document.forms[0].<?=$campo;?>.options.length = 1;
         
         idOpcao  = document.getElementById("opcoes<?=$campo;?>");
         
         ajax.open("POST", "<?=$campo;?>.php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            /*enquanto estiver processando...emite a msg de carregando */
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
            }
            /*após ser processado - chama função processXML<?=$campo;?> que vai varrer os Dados<?=$campo;?>*/
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXML<?=$campo;?>(ajax.responseXML);
               }
               else {
                   /*caso não seja um arquivo XML emite a mensagem abaixo */
                   idOpcao.innerHTML = "--Primeiro selecione o estado--";
               }
            }
         }
         /*passa o código do estado escolhido */
         var params = "estado="+valor;
         ajax.send(params);
      }
   }
   
   function processXML<?=$campo;?>(obj){
      /*pega a tag <?=$campo;?> */
      var dataArray   = obj.getElementsByTagName("<?=$campo;?>");
      
      /*total de elementos contidos na tag <?=$campo;?> */
      if(dataArray.length > 0) {
         /*percorre o arquivo XML paara extrair os Dados<?=$campo;?> */
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            /*contéudo dos campos no arquivo XML */
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
            
            /*cria um novo option dinamicamente   */
            var novo = document.createElement("option");
                /*atribui um ID a esse elemento */
                novo.setAttribute("id", "opcoes<?=$campo;?>");
                /*atribui um valor */
                novo.value = codigo;
                /*atribui um texto */
                novo.text  = descricao;
                /*finalmente adiciona o novo elemento */
                document.forms[0].<?=$campo;?>.options.add(novo);
         }
      }
      else {
        /*caso o XML volte vazio, printa a mensagem abaixo */
        idOpcao.innerHTML = "--Primeiro selecione o estado--";
      }      
   }

Link para o comentário
Compartilhar em outros sites

  • 0

Em alguns lugares do código você pode utilizar a função eval do JavaScript para fazer isso

Exemplo:

variavel_nome_da_funcao = "alert"
parametro="Teste"
eval(variavel_nome_da_funcao + "(" + variavel_parametro + ")")
Mas acho que o mais recomendado seria escrever o código sem a variável PHP Por exemplo, ao invés disso:
function Dados<?=$campo;?>(valor) {
Você pode remover o código PHP e deixar a função assim:
function Dados(valor) {

Link para o comentário
Compartilhar em outros sites

  • 0

Novamente acho que você não entendeu.;

O que eu quero é que o valor que eu der a variavel campo la no inicio do arquivo, seja exiido onde eu coloquei ( acho quie de forma errada) no meio do arquivo.

A ideia é, onde tiver o +campo, seja substituido pelo valor da variavel campo. Entendeu?

var campo = "cidade";
    function Dados+campo(valor) {
      /*verifica se o browser tem suporte a ajax */
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
          } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
             }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
                }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do Ajax");
               ajax = null;
                       }
                   }
                 }
      /*se tiver suporte ajax */
      if(ajax) {
         /*deixa apenas o elemento 1 no option, os outros são excluídos */
         document.forms[0].+campo+.options.length = 1;
         
         idOpcao  = document.getElementById("opcoes+campo");
         
         ajax.open("POST", "campo+.php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            /*enquanto estiver processando...emite a msg de carregando */
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
                                     }
            /*após ser processado - chama função processXML+campo que vai varrer os Dados+campo*/
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXML+campo(ajax.responseXML);
                                    }
               else {
                   /*caso não seja um arquivo XML emite a mensagem abaixo */
                   idOpcao.innerHTML = "--Primeiro selecione o estado--";
                    }
                                       }
                                                 }
         /*passa o código do estado escolhido */
         var params = "estado="+valor;
         ajax.send(params);
              }
         }
   
   function processXML+campo(obj){
      /*pega a tag +campo */
      var dataArray   = obj.getElementsByTagName(campo);
      
      /*total de elementos contidos na tag +campo */
      if(dataArray.length > 0) {
         /*percorre o arquivo XML paara extrair os Dados+campo */
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            /*contéudo dos campos no arquivo XML */
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
            
            /*cria um novo option dinamicamente   */
            var novo = document.createElement("option");
                /*atribui um ID a esse elemento */
                novo.setAttribute("id", "opcoes+campo");
                /*atribui um valor */
                novo.value = codigo;
                /*atribui um texto */
                novo.text  = descricao;
                /*finalmente adiciona o novo elemento */
                document.forms[0].+campo+.options.add(novo);
                                                   }
                                 }
      else {
        /*caso o XML volte vazio, printa a mensagem abaixo */
        idOpcao.innerHTML = "--Primeiro selecione o estado--";
           }      
                               }
------------------------------------------------------------------------------- Pessoal, preciso muuito disso? Na realidade o que eu precio é de completar o nome de uma função com, o valor de uma variavel. Tipo assim:
var campo = "cidade";
    function Dados+campo(valor) {...
O nome da função será Dados mais o valor da variavel Como ficaria. outros lugares seria:
..
  /*se tiver suporte ajax */
      if(ajax) {
         /*deixa apenas o elemento 1 no option, os outros são excluídos */
         document.forms[0].+campo+.options.length = 1;
         
         idOpcao  = document.getElementById("opcoes"+campo);...
e
ajax.open("POST", campo+".php", true);
e
/*pega a tag campo */
      var dataArray   = obj.getElementsByTagName(campo);
É isso. Quem puder ajudar fico agradecido no javaScript to tentando assim:
var campo = "cidade";
    function Dados+campo(valor) {...
O nome da função será Dados mais o valor da variavel Mas sem exito No php seria assim: [code <? $campo = "cidade"; ?> function Dados<?=campo;?> {...

E completa certinho

Link para o comentário
Compartilhar em outros sites

  • 0
Gente!

ninguém?

Up's não são permitidos de acordo com a regra 3.6 (http://scriptbrasil.com.br/forum/index.php?act=boardrules)
3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.

Portanto, o post foi excluído !

Você postou dois tópicos seguidos (um às 17:31 e outro às 18:30).

Sendo assim, os dois tópicos foram mesclados !

Evite postar tópicos seguidos !

Quanto à sua dúvida, eu entendi o que quer fazer !

Mas acho que a solução mais viável seria utilizar uma única função com o nome "Dados()" (ao invés de escrever a função de acordo com o PHP)

Se o código da função deve ser diferente para cada valor você pode passar os valores por parâmetros ao invés de criar várias funções com nomes diferentes

Ao invés de "Dados500()", você pode utilizar "Dados(500)" e montar sua função em torno desse valor !

Link para o comentário
Compartilhar em outros sites

  • 0

então voce quer dizer que não tem como completar o nom,e de uma função em JavbaScript?

tipo:

em php

<?
$completa = "nomeparacompletar";
?>
Function Daddos<?=$completa?>

Aqui, a função Dados passaria se chamar Dadosnomeparacompletar.

Voce quer dizer que em JavaScript isso não é possiovel?

Link para o comentário
Compartilhar em outros sites

  • 0

Não é possível (ou pelo menos não seria viável)

O que você pode fazer é, ao invés de escrever um código como esse:

function Teste1(){
alert("Bom dia")
}
function Teste2(){
alert("Boa noite")
}
Fazer uma função como essa:
function Teste(valor){
switch(valor){
case 1:
alert("Bom dia")
break
case 2:
alert("Boa noite")
}
}

Na minha opinião seria a opção mais viável !

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, en tão vamos la:

Observe que em algum lugares consegui fazer passando a variavel como parametro e nos lugares onde não consegui ai tive que colocar o valor "cidade" dela a mão mesmo.

Como faço para adaptar a variavel campo nos lugares onde esta a palavra "cidade" de forma tal que assim que o scripr rodar, o valor da variavel campo entregue "cidade" para completar os luigares?

var campo = "cidade";
    function Dadoscidade(valor) {
      /*verifica se o browser tem suporte a ajax */
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
          } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
             }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
                }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do Ajax");
               ajax = null;
                       }
                   }
                 }
      /*se tiver suporte ajax */
      if(ajax) {
         /*deixa apenas o elemento 1 no option, os outros são excluídos */
         document.forms[0].cidade.options.length = 1;
         
         idOpcao  = document.getElementById("opcoes"+campo);
         
         ajax.open("POST", campo+".php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            /*enquanto estiver processando...emite a msg de carregando */
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
                                     }
            /*após ser processado - chama função processXML+campo que vai varrer os Dados+campo*/
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXMLcidade(ajax.responseXML);
                                    }
               else {
                   /*caso não seja um arquivo XML emite a mensagem abaixo */
                   idOpcao.innerHTML = "--Primeiro selecione o estado--";
                    }
                                       }
                                                 }
         /*passa o código do estado escolhido */
         var params = "estado="+valor;
         ajax.send(params);
              }
         }
   
   function processXMLcidade(obj){
      /*pega a tag +campo */
      var dataArray   = obj.getElementsByTagName(campo);
      
      /*total de elementos contidos na tag +campo */
      if(dataArray.length > 0) {
         /*percorre o arquivo XML paara extrair os Dados+campo */
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            /*contéudo dos campos no arquivo XML */
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
            
            /*cria um novo option dinamicamente   */
            var novo = document.createElement("option");
                /*atribui um ID a esse elemento */
                novo.setAttribute("id", "opcoes"+campo);
                /*atribui um valor */
                novo.value = codigo;
                /*atribui um texto */
                novo.text  = descricao;
                /*finalmente adiciona o novo elemento */
                document.forms[0].cidade.options.add(novo);
                                                   }
                                 }
      else {
        /*caso o XML volte vazio, printa a mensagem abaixo */
        idOpcao.innerHTML = "--Primeiro selecione o estado--";
           }      
                               }

Link para o comentário
Compartilhar em outros sites

  • 0

Olhe essa linha:

function Dadoscidade(valor) {
Como já foi dito, o valor deverá ser sempre o mesmo ! Ou seja, ficaria assim:
function Dados(valor) {
Essa linha:
document.forms[0].cidade.options.length = 1;
Você pode deixar assim:
eval("document.forms[0]." + valor + ".options.length = 1")
Olhe isso também:
function processXMLcidade(obj){
Você deve deixar apenas o nome da função e, se necessário, inserir um novo parâmetro E, por último, olhe isso:
document.forms[0].cidade.options.add(novo);
Deixe assim:
eval("document.forms[0]." + valor + ".options.add(" + novo + ")")

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, acho que vai dar.

mas, como faria então no formulario para informar para o arquivo cidades.js o valor da variavel campo?

tipo assim:

<script language="JavaScript" src="cidade.js?campo=cidade"></script>
nesse caso, la no arquivo cidade.js, pretendo retirar a primeira linha
var campo = "cidade";

pois já estarei passando na url via metodo GET.

tem jeito isso?

Como faz?

Link para o comentário
Compartilhar em outros sites

  • 0

sim

por ewxemplo

href="pagina.php?campo=cidade"

la no pagina.php eu faço assim:

$campo = $_GET['campo'];

o que é iso?

uma variavel campo em php e dentro do arquivo pagina php recebendo a variuavel campo que veio pela url (endereço do navegador) atravbés do metoto GET.;

Como fazer isso em javascript?

Link para o comentário
Compartilhar em outros sites

  • 0

olha.

ele pos isso la certo? E isso esta dentro de um arquivo.js certo?

Eu gostaria de saber onde nessa função esta sendo recebibo o valor que esta chegando de outra paginma para ele via url?

function QueryString(variavel){
var variaveis=location.search.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
var nvar    
     if(variaveis!=""){
     var qs=[]
        for(var i=0;i<variaveis.length;i++){
        nvar=variaveis[i].split("=")
        qs[nvar[0]]=unescape(nvar[1])
        }
    return qs[variavel]
    }
return null
}

Link para o comentário
Compartilhar em outros sites

  • 0

É só você copiar a função para seu código e depois começar a usar...

Exemplo:

function QueryString(variavel){
var variaveis=location.search.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
var nvar    
     if(variaveis!=""){
     var qs=[]
        for(var i=0;i<variaveis.length;i++){
        nvar=variaveis[i].split("=")
        qs[nvar[0]]=unescape(nvar[1])
        }
    return qs[variavel]
    }
return null
}
window.onload=function(){
valor=QueryString("campo")
alert("O valor é: " + valor)
}

Link para o comentário
Compartilhar em outros sites

  • 0

seguinte.

fiz assim com, a minha var campo= "cidade"; e da certo.

quando vou no arquivo php que vai chamar o cidade.js e faço:

<script language="JavaScript" src="cidade.js?campo=cidade"></script>
da erro de
Detalhes dos erros da página da Web

Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)
Carimbo de data/hora: Sun, 1 Mar 2009 21:44:09 UTC


Mensagem: Identificador esperado
Linha: 41
Caractere: 7
Código: 0
URI: http://localhost/php/muriaeemrede.com.br/cd/cidade.js?campo=cidade
veja o código todo do cidade.js
function QueryString(variavel){
var variaveis=location.search.replace(/x3F/,"").replace(/x2B/g," ").split("&")
var nvar    
     if(variaveis!=""){
     var qs=[]
        for(var i=0;i<variaveis.length;i++){
        nvar=variaveis[i].split("=")
        qs[nvar[0]]=unescape(nvar[1])
        }
    return qs[variavel]
    }
return null
}

var campo=QueryString("campo");
//var campo="cidade";


    function Dados(valor) {
      /*verifica se o browser tem suporte a ajax */
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
          } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
             }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
                }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do Ajax");
               ajax = null;
                       }
                   }
                 }
      /*se tiver suporte ajax */
      if(ajax) {
         /*deixa apenas o elemento 1 no option, os outros são excluídos */
            eval("document.forms[0]." + campo + ".options.length = 1")
         //document.forms[0].cidade.options.length = 1;
         
         idOpcao  = document.getElementById("opcoes"+campo);
         
         ajax.open("POST", campo+".php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            /*enquanto estiver processando...emite a msg de carregando */
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
                                     }
            /*após ser processado - chama função processXML+campo que vai varrer os Dados+campo*/
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXML(ajax.responseXML);
                                    }
               else {
                   /*caso não seja um arquivo XML emite a mensagem abaixo */
                   idOpcao.innerHTML = "--Primeiro selecione o estado--";
                    }
                                       }
                                                 }
         /*passa o código do estado escolhido */
         var params = "estado="+valor;
         ajax.send(params);
              }
         }
   
   function processXML(obj){
      /*pega a tag +campo */
      var dataArray   = obj.getElementsByTagName(campo);
      
      /*total de elementos contidos na tag +campo */
      if(dataArray.length > 0) {
         /*percorre o arquivo XML paara extrair os Dados+campo */
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            /*contéudo dos campos no arquivo XML */
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
            
            /*cria um novo option dinamicamente   */
            var novo = document.createElement("option");
                /*atribui um ID a esse elemento */
                novo.setAttribute("id", "opcoes"+campo);
                /*atribui um valor */
                novo.value = codigo;
                /*atribui um texto */
                novo.text  = descricao;
                /*finalmente adiciona o novo elemento */
                eval("document.forms[0]." + campo + ".options.add(novo)")
                //    document.forms[0].cidade.options.add(novo);
                                                   }
                                 }
      else {
        /*caso o XML volte vazio, printa a mensagem abaixo */
        idOpcao.innerHTML = "--Primeiro selecione o estado--";
           }      
                               }
por um acaso te,m alguma coisa a ver o js estar em outro arquivb script:location.reload()} else {java script:tamanhos()} } function tamanhos() { var imagem=new Image(); imagem.src=document.form.logomarca.value; tamanho_imagem = imagem.fileSize img_tan = tamanho_imagem if (tamanho_imagem < 0) {java script:tamanhos()} else if (tamanho_imagem > 150000) {alert("O tamanho da Imagem é muito grande ... "+tamanho_imagem+" Bytes!!");java script:location.reload()} else {java script:ativafigura()} } function ativafigura() { document.getElementById('logotipo').innerHTML = "<img border="0" src=""+document.form.logomarca.value+"" name="img" style="visibility: hidden" >" largura = document.getElementById("img").width; altura = document.getElementById("img").height; if (largura > 1200 || altura > 1200 ) {alert("A imagem é "+largura+"x"+altura+" está fora do padrão requerido");java script:location.reload()} } </script> </head> <body> <form name="form" enctype="multipart/form-data" method="post" action="jogoupload_gravar.asp" id="form"> <p>Escolha a foto:</p> <p> <input type="file" name="logomarca" size="20" class="form2" onChange="validaimagem();"> <div id="logotipo"></div> </p> </form> </body> </html>
<script language="JavaScript" src="cidade.js?campo=cidade"></script>
Eu preciso la no arquivo js resgatar essa variavel campo para usala la da seguinte forma: Onde tiver a palavra cidade no código abaixo tenho que trocar pela variavel campo que entregar seu valor. Voces podem observar que em alguns lugares, já consegui colocar a variavel campo nesse código mas nos lugares onde ainda a palavra cidade esta, nesse sainda não consaegui. Então preciso de sabner como recuperar a variavel campo no js passado pela url e preciso saber como aplica-la nos lugares onde ainda esta a palavra cidade. se fosse em php seria assim:
$campo = $_GET["campo"];

function Dados<?=$campo;?>(valor) {
...
Mas em JavaScript não estou consegindo
function DadosCidade(valor) {
      //verifica se o browser tem suporte a ajax
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
            }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do ajax");
               ajax = null;
            }
         }
      }
      //se tiver suporte ajax
      if(ajax) {
         //deixa apenas o elemento 1 no option, os outros são excluídos
         document.forms[0].cidade.options.length = 1;
         
         idOpcao  = document.getElementById("opcoescidade");
         
         ajax.open("POST", "cidade.php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            //enquanto estiver processando...emite a msg de carregando
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
            }
            //após ser processado - chama função processXMLCidades que vai varrer os dados
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXML(ajax.responseXML);
               }
               else {
                   //caso não seja um arquivo XML emite a mensagem abaixo
                   idOpcao.innerHTML = "Primeiro selecione o estado>>";
               }
            }
         }
         //passa o código do estado escolhido
         var params = "estado="+valor;
         ajax.send(params);
      }
   }
   
   function processXMLCidade(obj){
      //pega a tag cidade
      var dataArray   = obj.getElementsByTagName("cidade");
      
      //total de elementos contidos na tag cidade
      if(dataArray.length > 0) {
         //percorre o arquivo XML paara extrair os dados
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            //contéudo dos campos no arquivo XML
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "Selecione uma das opções abaixo>>";
            
            //cria um novo option dinamicamente  
            var novo = document.createElement("option");
                //atribui um ID a esse elemento
                novo.setAttribute("id", "opcoescidade");
                //atribui um valor
                novo.value = codigo;
                //atribui um texto
                novo.text  = descricao;
                //finalmente adiciona o novo elemento
                document.forms[0].cidade.options.add(novo);
         }
      }
      else {
        //caso o XML volte vazio, printa a mensagem abaixo
        idOpcao.innerHTML = "Primeiro selecione o estado>>";
      }      
   }
Bom dia pessoal! Melhorando um pouco a explicaçao dos problemas: Tenho aqui 02 Problemas que estão me tirando o sono: 1) Tenho um form onde um dos campos é um campo de upload de imagem e tenho um scrtipt para validar essa imagem quanto a peso e medidas. Bom, quando faço um form simples em um arquivo html e rodo ele no IE mas fora do servidor (tanto local quanto na web), o script funciona normal, mas quando jogo no servidor ele da a seguinte mensagem:
Out of memory at line: 10
Eis o código da pagina:
<html>
<head>
<script>
function validaimagem() {
var extensoesOk = ",.gif,.jpg,.jpeg,.png,.gif,.bmp,";
var extensao    = "," + document.form.logomarca.value.substr( document.form.logomarca.value.length - 4 ).toLowerCase() + ",";
if (document.form.logomarca.value == "")
 {alert("O campo do endereço da imagem está vazio!!")}
else if( extensoesOk.indexOf( extensao ) == -1 )
 { alert( document.form.logomarca.value + "nNão possui uma extensão válida" );java script:location.reload()}
else {java script:tamanhos()}     
}
function tamanhos() {
var imagem=new Image();
imagem.src=document.form.logomarca.value;
tamanho_imagem = imagem.fileSize 
img_tan = tamanho_imagem
if (tamanho_imagem < 0)
 {java script:tamanhos()}
else if (tamanho_imagem > 150000)
{alert("O tamanho da Imagem é muito grande ...  "+tamanho_imagem+" Bytes!!");java script:location.reload()}
else 
{java script:ativafigura()}
}
function ativafigura() {
document.getElementById('logotipo').innerHTML = "<img border="0" src=""+document.form.logomarca.value+"" name="img" style="visibility: hidden" >"
largura = document.getElementById("img").width;
altura = document.getElementById("img").height;
if (largura > 1200 || altura > 1200 )
  {alert("A imagem é "+largura+"x"+altura+" está fora do padrão requerido");java script:location.reload()}
                       }
</script>
</head>
<body>
<form name="form" enctype="multipart/form-data" method="post" action="jogoupload_gravar.asp" id="form">
<p>Escolha a foto:</p>
<p>
<input type="file" name="logomarca" size="20" class="form2" onChange="validaimagem();">
<div id="logotipo"></div>
</p>
</form>

</body>
</html>
Como posso resolver isso? 2) Bom o segundo problema é o seguinte: Tenho o códigio abaixo deo arquivo cidade.js que é chamado de dentro de um arquivo php que contem o formulario. Preciso arranjar uma forma de a partir do arquivo php, na linha que chama o js, enviar parametro tipo
<script language="JavaScript" src="cidade.js?campo=cidade"></script>
Eu preciso la no arquivo js resgatar essa variavel campo para usala la da seguinte forma: Onde tiver a palavra cidade no código abaixo tenho que trocar pela variavel campo que entregar seu valor. Voces podem observar que em alguns lugares, já consegui colocar a variavel campo nesse código mas nos lugares onde ainda a palavra cidade esta, nesse sainda não consaegui. Então preciso de sabner como recuperar a variavel campo no js passado pela url e preciso saber como aplica-la nos lugares onde ainda esta a palavra cidade. se fosse em php seria assim:
$campo = $_GET["campo"];

function Dados<?=$campo;?>(valor) {
...
Mas em JavaScript não estou consegindo
function DadosCidade(valor) {
      //verifica se o browser tem suporte a ajax
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
            }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do ajax");
               ajax = null;
            }
         }
      }
      //se tiver suporte ajax
      if(ajax) {
         //deixa apenas o elemento 1 no option, os outros são excluídos
         document.forms[0].cidade.options.length = 1;
         
         idOpcao  = document.getElementById("opcoescidade");
         
         ajax.open("POST", "cidade.php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            //enquanto estiver processando...emite a msg de carregando
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
            }
            //após ser processado - chama função processXMLCidades que vai varrer os dados
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXML(ajax.responseXML);
               }
               else {
                   //caso não seja um arquivo XML emite a mensagem abaixo
                   idOpcao.innerHTML = "Primeiro selecione o estado>>";
               }
            }
         }
         //passa o código do estado escolhido
         var params = "estado="+valor;
         ajax.send(params);
      }
   }
   
   function processXMLCidade(obj){
      //pega a tag cidade
      var dataArray   = obj.getElementsByTagName("cidade");
      
      //total de elementos contidos na tag cidade
      if(dataArray.length > 0) {
         //percorre o arquivo XML paara extrair os dados
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            //contéudo dos campos no arquivo XML
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "Selecione uma das opções abaixo>>";
            
            //cria um novo option dinamicamente  
            var novo = document.createElement("option");
                //atribui um ID a esse elemento
                novo.setAttribute("id", "opcoescidade");
                //atribui um valor
                novo.value = codigo;
                //atribui um texto
                novo.text  = descricao;
                //finalmente adiciona o novo elemento
                document.forms[0].cidade.options.add(novo);
         }
      }
      else {
        //caso o XML volte vazio, printa a mensagem abaixo
        idOpcao.innerHTML = "Primeiro selecione o estado>>";
      }      
   }
Boa tarde pessoal! Criei esdte tópico pois o outro alem de estar muito grande e confuso, não tem como edita-lo. Melhorando um pouco a explicaçao dos problemas: Tenho aqui 02 Problemas que estão me tirando o sono: 1) Tenho um form onde um dos campos é um campo de upload de imagem e tenho um scrtipt para validar essa imagem quanto a peso e medidas. Bom, quando faço um form simples em um arquivo html e rodo ele no IE mas fora do servidor (tanto local quanto na web), o script funciona normal, mas quando jogo no servidor ele da a seguinte mensagem:
Out of memory at line: 10
Eis o código da pagina:
<html>
<head>
&lt;script>
function validaimagem() {
var extensoesOk = ",.gif,.jpg,.jpeg,.png,.gif,.bmp,";
var extensao    = "," + document.form.logomarca.value.substr( document.form.logomarca.value.length - 4 ).toLowerCase() + ",";
if (document.form.logomarca.value == "")
 {alert("O campo do endereço da imagem está vazio!!")}
else if( extensoesOk.indexOf( extensao ) == -1 )
 { alert( document.form.logomarca.value + "nNão possui uma extensão válida" );java script:location.reload()}
else {java script:tamanhos()}     
}
function tamanhos() {
var imagem=new Image();
imagem.src=document.form.logomarca.value;
tamanho_imagem = imagem.fileSize 
img_tan = tamanho_imagem
if (tamanho_imagem < 0)
 {java script:tamanhos()}
else if (tamanho_imagem > 150000)
{alert("O tamanho da Imagem é muito grande ...  "+tamanho_imagem+" Bytes!!");java script:location.reload()}
else 
{java script:ativafigura()}
}
function ativafigura() {
document.getElementById('logotipo').innerHTML = "<img border="0" src=""+document.form.logomarca.value+"" name="img" style="visibility: hidden" >"
largura = document.getElementById("img").width;
altura = document.getElementById("img").height;
if (largura > 1200 || altura > 1200 )
  {alert("A imagem é "+largura+"x"+altura+" está fora do padrão requerido");java script:location.reload()}
                       }
</script>
</head>
<body>
<form name="form" enctype="multipart/form-data" method="post" action="jogoupload_gravar.asp" id="form">
<p>Escolha a foto:</p>
<p>
<input type="file" name="logomarca" size="20" class="form2" onChange="validaimagem();">
<div id="logotipo"></div>
</p>
</form>

</body>
</html>
Como posso resolver isso? 2) Bom o segundo problema é o seguinte: Tenho o códigio abaixo deo arquivo cidade.js que é chamado de dentro de um arquivo php que contem o formulario. Preciso arranjar uma forma de a partir do arquivo php, na linha que chama o js, enviar parametro tipo
&lt;script language="JavaScript" src="cidade.js?campo=cidade"></script>
Eu preciso la no arquivo js resgatar essa variavel campo para usala la da seguinte forma: Onde tiver a palavra cidade no código abaixo tenho que trocar pela variavel campo que entregar seu valor. Voces podem observar que em alguns lugares, já consegui colocar a variavel campo nesse código mas nos lugares onde ainda a palavra cidade esta, nesse sainda não consaegui. Então preciso de sabner como recuperar a variavel campo no js passado pela url e preciso saber como aplica-la nos lugares onde ainda esta a palavra cidade. se fosse em php seria assim:
$campo = $_GET["campo"];

function Dados<?=$campo;?>(valor) {
...
Mas em JavaScript não estou consegindo
function DadosCidade(valor) {
      //verifica se o browser tem suporte a ajax
      try {
         ajax = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch(e) {
         try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch(ex) {
            try {
               ajax = new XMLHttpRequest();
            }
            catch(exc) {
               alert("Esse browser não tem recursos para uso do ajax");
               ajax = null;
            }
         }
      }
      //se tiver suporte ajax
      if(ajax) {
         //deixa apenas o elemento 1 no option, os outros são excluídos
         document.forms[0].cidade.options.length = 1;
         
         idOpcao  = document.getElementById("opcoescidade");
         
         ajax.open("POST", "cidade.php", true);
         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         
         ajax.onreadystatechange = function() {
            //enquanto estiver processando...emite a msg de carregando
            if(ajax.readyState == 1) {
               idOpcao.innerHTML = "Carregando...!";   
            }
            //após ser processado - chama função processXMLCidades que vai varrer os dados
            if(ajax.readyState == 4 ) {
               if(ajax.responseXML) {
                  processXML(ajax.responseXML);
               }
               else {
                   //caso não seja um arquivo XML emite a mensagem abaixo
                   idOpcao.innerHTML = "Primeiro selecione o estado>>";
               }
            }
         }
         //passa o código do estado escolhido
         var params = "estado="+valor;
         ajax.send(params);
      }
   }
   
   function processXMLCidade(obj){
      //pega a tag cidade
      var dataArray   = obj.getElementsByTagName("cidade");
      
      //total de elementos contidos na tag cidade
      if(dataArray.length > 0) {
         //percorre o arquivo XML paara extrair os dados
         for(var i = 0; i < dataArray.length; i++) {
            var item = dataArray[i];
            //contéudo dos campos no arquivo XML
            var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
            var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
            
            idOpcao.innerHTML = "Selecione uma das opções abaixo>>";
            
            //cria um novo option dinamicamente  
            var novo = document.createElement("option");
                //atribui um ID a esse elemento
                novo.setAttribute("id", "opcoescidade");
                //atribui um valor
                novo.value = codigo;
                //atribui um texto
                novo.text  = descricao;
                //finalmente adiciona o novo elemento
                document.forms[0].cidade.options.add(novo);
         }
      }
      else {
        //caso o XML volte vazio, printa a mensagem abaixo
        idOpcao.innerHTML = "Primeiro selecione o estado>>";
      }      
   }

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...