Ir para conteúdo

Arquivado

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

Carcleo

concatenação

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pera.. você precisa criar o nome da função dinâmicamente ?? oO

Porque ? é realmente necessário isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precciso sim pois nmo meu caso, tenho uma combobox que lista os estados e outra combobox que lista as ciddes por estado escolhido na primeira combobox

 

e tambem tenho uma combobox que lista os seguimentos comerciais e outra combobox que lista os subseguimentos por seguimentos escolhido na primeira combobox

 

dai, quando chamo a função nas duas combobox, a de estadoa e a de seguimentos, apenas a de estados funciona e quando eu crou duas vezes o script trocando o nome da função da certo.

 

No php eu faço do jeito abaixo mas no JavaScript!!!!!!!!!!!!!!!!!!!!!!!!

<?
$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>

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.