Ir para conteúdo

POWERED BY:

Arquivado

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

Nathã

Trocar texto por input

Recommended Posts

Salve!

 

Meu caso é o seguinte: tenho uma tabela que lista categorias cadastradas. Quero fazer o seguinte: quando uma categoria (uma linha) é clicada, vira um input com os textos dentro, para o usuário poder alterar os dados.

 

Não estou conseguindo pegar a determinada tag e transformá-la em input. Por exemplo, se o conteúdo da tag num="1" for clicado, como eu pego essa tag pelo atributo num (que eu inventei)?

 

codigo:

 

<script type="text/javascript">
       function alteraForm(){
       	//alterar os textos para inputs na <td> respectiva
           //--------Oque fazer aqui?----------------       	

       }
       </script>



<form method="post" action="alteraCategoria.jsp" name="formaltcat">
<center>
<table>
<%
Consultar c = new Consultar();
ResultSet rs = c.retornaCategorias();

int cont=0;
while(rs.next()){
int codigo = rs.getInt("codcat");
String nome = rs.getString("nomcat");
String descricao = rs.getString("descat");
%>
<tr num="<% out.print(cont); %>">
<td num="<% out.print(cont); %>" id="cod"><a onClick="alteraForm();"><% out.print(codigo); %></a></td>
<td num="<% out.print(cont); %>" id="nom"><a onClick="alteraForm();"><% out.print(nome); %></a></td>
<td num="<% out.print(cont); %>" id="sup"><a onClick="alteraForm();"></a></td>
</tr>
<%
cont++;}
%>
</table>
</center>
</form>

 

 

 

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já solucionei aqui.

 

Eis o código:

 



<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" session="true"
import="unifebe.banco.*, java.sql.ResultSet" errorPage="paginaErro.jsp"%>

<script type="text/javascript">
       function alteraForm(id, loc){
       	var tr = document.getElementById(id);
       	var tds = tr.getElementsByTagName("td");

       	var as = tr.getElementsByTagName("a");
       	var nome = as[1].firstChild.nodeValue;
       	var codigo = as[0].firstChild.nodeValue;


       	tds[1].innerHTML="<input id='inputnome' class='texdondo' type='text' name='nome' value='"+nome+"' onBlur='javascript:gravar("+codigo+");'>";	
      		if(loc=="nom"){
      			document.getElementById("inputnome").focus();
      		}

       }

           function gravar(c){
               //document.getElementById("estado").innerHTML="Alterando... por favor, aguarde.";          	
               reqObj=new XMLHttpRequest();
               reqObj.onreadystatechange=processar;
               reqObj.open("POST","alteraCategoria.jsp?c="+c+"&n="+document.getElementById("inputnome").value,true);
               reqObj.send(null);

               var tr = document.getElementById(c);
           	var tds = tr.getElementsByTagName("td");
               tds[1].innerHTML="<a onClick='alteraForm("+c+");'>"+document.getElementById("inputnome").value+"</a>";


           }

           function processar(){
               if(reqObj.readyState==4){
               	//alert(reqObj.responseText);
                   //document.getElementById("estado").innerHTML="Alterado com sucesso";


               }
           }

       </script>

<center>
	<table>
		<%
			Consultar c = new Consultar();
			ResultSet rs = c.retornaCategorias();

			while (rs.next()) {
				int codigo = rs.getInt("codcat");
				String nome = rs.getString("nomcat");
				String descricao = rs.getString("descat");
		%>
		<tr id="<%out.print(codigo);%>">
			<td><a onClick="alteraForm(<%out.print(codigo);%>);">
					<%
						out.print(codigo);
					%></a></td>
			<td><a onClick="alteraForm(<%out.print(codigo);%>, 'nom');">
					<%
						out.print(nome);
					%>
			</a></td>
			<td><a onClick="alteraForm(<%out.print(codigo);%>);"></a></td>
		</tr>
		<%
			}
		%>
	</table>
</center>

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.