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