Jump to content


bebad JavaPlayer

Member Since 04/01/2007
Offline Last Active 08/01/2007, 16:07
-----

Topics I've Started

Ajax + Dom + <a Href="">

04/01/2007, 14:52

:D
Boa tarde caros, eu sou novo no forum cheguei agora...
nessa busca por informacao sobre ajax, estou tentando fazer um hyperlink que ja funciona, mas em formato de <option> manja ? fica a janelinha vc escolhe e clica, dai embaixo ja me aparece oque eu escolhi.

bem, eu preciso chamar a funcao usando um hyperlink, para fazer menus dinamicos no site que a empresa mandou eu fazer, estou aqui a varios dias e nao consigo sair dessa, ta bem hard...

parece simples mas eh bem complexa

segue abaixo maiores explicacoes:

atualmente:

Code:

 <html>
	<c:set var="projetos" value="<%= Factory.getProjetos()%>"/>   
	<center>
		<select id="projeto" onchange="java script:alteraProjeto()">
			<c:forEach var="p" items="${projetos}">
					<option value="${p.id}">${p.nome}</option>
			</c:forEach>
		</select>
		<br><br>
	</center>
 </html>
 

objetivo:
mudar a tag Select pra um hyperlink simples, que chame minha função

Code:
 <html>
	<c:set var="projetos" value="<%= Factory.getProjetos()%>"/>   
	<center>
	<c:forEach var="p" items="${projetos}">	   
	<a href="#" onclick="alteraProjeto">${p.nome}</a> 
	</c:forEach>   
	<br><br>
	</center>
 </html>
 


Função que quero chamar:


Code:


 function alteraProjeto()
 {
	var theUrl = "obtemAtividades.jsp?projeto="+document.getElementById("projeto").value;
	xmlhttp.open("GET", theUrl,true);
	xmlhttp.onreadystatechange=function() {
	  if (xmlhttp.readyState==4) {
 	   criaTabela(xmlhttp.responseText);
		 }
	}
	xmlhttp.send(null);
	
 };
 

Acontece que nao é tao simples assim, eu preciso criar uma outra funcao javascript que navegue pelo Option, e ache qual foi o projeto que eu desejo visualizar

Bom, pedi uma explicacao pra meu professor la no curso que fiz e ele disse o seguinte:

-------------------------------------------------------------------------------------------------------

Isso não é tão simples assim quanto parece. (como tudo em Javascript).

Você precisará adicionar externamente a tag select um

<div id='nomeProjeto'>
<select ...

</select>
</div>


Em seguida vc vai utilizar a função getElementById procurando pela tag div:
var element = document.getElementById("nomeProjeto"); //essa é a tag do div que irá alterar as options
Vc deverá percorrer pelas tags <option>.
Uma sugestão seria vc pegar o element acima e chamar o método
var listaOptions = element.getElementsByName('option');
As tags filhas devem ser percorridas com um laço for, guardando as informações que estiverem armazenadas
em cada um dos option.
for(i=0;i<listaOptions.length;i++){
....
}

No laço for:
Para ler o texto existente entre as tags option a propriedade innerHTML.
var texto = listaOptions[i].innerHTML;
Em seguida cria-se um element vazio através do comando:
var elementA =document.createElement('A');
Vc deve populá-las com informações sobre o conteúdo a esses elementos
elementA.innerHTML = texto;
em seguida deve-se remover as tags option que vc capturou na variável listaOpcoes.
Por fim, nesta mesma iteração do laço for os elementos (elementA) devem ser adicionados na tag div usando a função
listaOptions.appendChild(elementA);

-------------------------------------------------------------------------------------------

bom oque aconteceu eh que eu nao entendi oque ele me disse pra eu fazer, cara não quero nada mastigado, quero entender..mas ele ta ocupadao trabalhando pra karalho e ta xxxxxx...
sera que alguem, mais experiente poderia dar uma ajudinha ???
em anexo, seguem os fontes, pra voces entenderem melhor oque eu estou dizendo, e oque eu estou tentando fazer.

valeu mesmo

abrasss

IPB Skin By Virteq