Jump to content


Marcio Toloi

Member Since 15/01/2007
Offline Last Active 02/05/2007, 17:00
-----

Posts I've Made

In Topic: Funçãozinha Em Js...

19/01/2007, 19:28

Olá de novo.... então, demorei um pouco na resposta, mas aqui vai a função que eu utilizo para instanciar o Ajax.

//
// Define a list of Microsoft XML HTTP ProgIDs.
//
var XMLHTTPREQUEST_MS_PROGIDS = new Array(
  "Msxml2.XMLHTTP.7.0",
  "Msxml2.XMLHTTP.6.0",
  "Msxml2.XMLHTTP.5.0",
  "Msxml2.XMLHTTP.4.0",
  "MSXML2.XMLHTTP.3.0",
  "MSXML2.XMLHTTP",
  "Microsoft.XMLHTTP"
);

//
// Retorna um objeto do tipo XMLHttpRequest.
//
function instanciaAjax()
{
  var httpRequest = null;

  // Cria a instância apropriada para o browser.
  if (window.XMLHttpRequest != null)
	httpRequest = new window.XMLHttpRequest();
  else if (window.ActiveXObject != null)
  {
	// Senão, cria uma instância para IE.
	var success = false;
	for (var i = 0; i < XMLHTTPREQUEST_MS_PROGIDS.length && !success; i++)
	{
	  try
	  {
		httpRequest = new ActiveXObject(XMLHTTPREQUEST_MS_PROGIDS[i]);
		success = true;
	  }
	  catch (ex)
	  {}
	}
  }
  
  // Exibe um erro caso nenhuma das instâncias tenha sido criada.
  if (httpRequest == null)
	alert("Error in HttpRequest():\n\n"
	  + "Cannot create an XMLHttpRequest object.");

  return httpRequest;
}

Essa implementação foi publicada no site www.brainjar.com, o qual recomendo que acesse. Não possui muito conteúdo, mas os que tem, estão minunciosamente explicados.

Abraço!

In Topic: Eu Denovo..

19/01/2007, 19:19

É mesmo hehehe... não tinha testado os radios.

Eu estava neste exato momento postando uma resposta. Mas o matt.cavotta foi mais rápido :D

Enfim, aquela implementação então ficaria:
var period = document.getElementsByName('periodicidade');

for (var i=0; i<period.length; i++) {
  if (period[i].checked == true) {
	period = period[i].value;
	break;
  }
}

Valeu! Abraço!

In Topic: Funçãozinha Em Js...

18/01/2007, 21:07

Olá amigo!

Estive analisando seu caso e montei um esqueminha aqui... espero que ajude. Vamos lá.

Pelo que entendi você possui um formulário HTML com os seguintes campos:

[Combobox] vencimento

(radio) periodicidade 1
(radio) periodicidade 2
(radio) periodicidade 3... etc.

Para tal, montei o seguinte HTML:

<select size="1" id="vencimento" onChange="atualizaDados();">
  <option value="1">opção 1</option>
  <option value="2">opção 2</option>
</select>

<input type="radio" value="1" name="period" onClick="atualizaDados();">
<input type="radio" value="2" name="period" onClick="atualizaDados();">
<input type="radio" value="3" name="period" onClick="atualizaDados();">

Logo abaixo incluí uma DIV que irá receber o texto com os valores que vc precisa:
<p>
  <div>
	<b>
	  Total: R$ <span id="valor">0,00</span>
	</b>
  </div>
</p>

Agora, vamos fazer nossas funções que irão utilizar o Ajax para buscar os dados do 'valores.php'.
<script language="javascript">

//Antes de mais nada, instanciamos nosso Ajax.
var ajax = new instanciaAjax();
// *A função instanciaAjax() é responsável por verificar qual browser
// o usuário possui e, com isso, instanciar o Ajax adequado.

function atualizaDados() {

  //Pegamos os valores dos campos.
  var period	 = document.getElementsByName('period').value;
  var vencimento = document.getElementById('vencimento')
  vencimento = vencimento.options[vencimento.selectedIndex].value;
  
  //Montamos a URL que irá receber os dados dos campos via GET.
  var url = 'valores.php?period='+ period +'&venc='+ vencimento;

  //Configuramos a função que irá processar o resultado do PHP.
  ajax.onreadystatechange = atualizaValor;

  //Enviamos a requisição para o PHP.
  ajax.open("GET", url, true);
  ajax.send(null);
}


function atualizaValor() {

  //Verificamos se o Ajax já terminou de receber os dados.
  if (ajax.readyState == 4) {
	
	//Então atualizamos o label valor com o novo texto.
	document.getElementById('valor').innerHTML = ajax.responseText;
  }
}

</script>

Algumas considerações...
- Eu não coloquei a função que gera a instância do Ajax porque cada programador normalmente tem seu método de verificar os browsers, e então gerar o Ajax, mas caso precise dela também, é só me falar.

Espero que tenha ajudado. Abraço!

Marcio Toloi

In Topic: Alguem Conhece Editor Avancado P/ Javascript

15/01/2007, 19:55

Olá, outro bom editor de Javascript e CSS (freeware) se chama Aptana. Ele é baseado no projeto do Eclipse. Possui debug passo-a-passo, debug interativo, assistente de código, biblioteca de funções, exibe a compatibilidades das funções com os diferentes browsers do mercado, etc.

Site oficial: www.aptana.com

Abaixo algumas screenshots:

Code assist
Posted Image

Support information
Posted Image

CSS, Javascript and HTML outlines
Posted Image

Abraços. ;)

Marcio Toloi

IPB Skin By Virteq