Ir para conteúdo
Fórum Script Brasil
  • 0

Campos iguais em ajax


irisp

Pergunta

Povo, preciso de uma grande ajuda!

Estou usamos o ajax para trazer a descrição e o preço da peça atraves do codigo da peça.

Consegui fazer funcionar em um campo, mas o problema é que tenho os campos com o mesmo nome e ajax só funciona uma vez....como posso fazer para diferenciar os campos? sem mudar o nome do campo...porque com o nome do campo que consigo fazer o vector para salvar no BD.

Olha com está o jsp:

<legend>Lançamento de Peças</legend>
      <table id="tabelaP" border="0" align="left">
        <tr>
        <td width="5"><b>Cod.:</b></td>
         <td width="10"><input type="text" name="txt_codpeca" id="txt_codpeca" maxlength="10" style="TEXT-TRANSFORM: uppercase;" size="7" onBlur="updateDadosP()"/></td>

         <td width="260"><input type="text" name="txt_descpeca" id="txt_descpeca" maxlength="45" style="TEXT-TRANSFORM: uppercase;" size="37" readonly/></td>
         
          <td width="100"><b> Preço:</b> 
           <input type="text" name="txt_precopeca" id="txt_precopeca" maxlength="8" size="5" value="0" readonly onBlur="subtotal()"/></td>
         
         <td width="100"><b> Quant.:</b> 
           <input type="text" name="txt_quantpeca" id="txt_quantpeca" maxlength="8" size="5" value="0" onBlur="subtotal()"/></td>

          <td width="90"><b> Total:</b> 
           <input type="text" name="txt_subtotalp" id="txt_subtotalp" maxlength="8" size="5" value="0" readonly/></td>
    </tr>
     <tr>
        <td width="5"><b>Cod.:</b></td>
         <td width="10"><input type="text" name="txt_codpeca" id="txt_codpeca" maxlength="10" style="TEXT-TRANSFORM: uppercase;" size="7" onBlur="updateDadosP()"/></td>

         <td width="260"><input type="text" name="txt_descpeca" id="txt_descpeca" maxlength="45" style="TEXT-TRANSFORM: uppercase;" size="37" readonly/></td>
         
          <td width="100"><b> Preço:</b> 
           <input type="text" name="txt_precopeca" id="txt_precopeca" maxlength="8" size="5" value="0" readonly onBlur="subtotal()"/></td>
         
         <td width="100"><b> Quant.:</b> 
           <input type="text" name="txt_quantpeca" id="txt_quantpeca" maxlength="8" size="5" value="0" onBlur="subtotal()"/></td>

          <td width="90"><b> Total:</b> 
           <input type="text" name="txt_subtotalp" id="txt_subtotalp" maxlength="8" size="5" value="0" readonly/></td>
         
    </tr>
 </table>
 </fieldset> 

[i]Olha o js:[/i]
var url = "load_peca.jsp?txt_codpeca="; // The server-side script
var http = getHTTPObject(); // We create the XMLHTTPRequest Object

function handleHttpResponse() {
    if (http.readyState == 4) {
        if (http.status == 200) {
                  
            results = http.responseText.split(";");
            document.getElementById('txt_descpeca').value = results[0];
            document.getElementById('txt_precopeca').value = results[1];
        } else {
            alert ( "Peça Não Existe!" );
        }
    }    
}

function updateDadosP() {
    
    var codigoValue = document.getElementById("txt_codpeca").value;
http.open("GET", url + escape(codigoValue), true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}

function getHTTPObject() {
    var xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } return xmlhttp;
}
[i]
Outra pagina jsp: (load_peca)
[/i]
<%@ page contentType="text/html; charset=iso-8859-1" language="java" %>
<%@page import="modelo.Peca" %>
<%@page import="dao.DaoPeca" %>

<%
 String codigo =request.getParameter("txt_codpeca");

 if (codigo != null){
    
        Peca peca = new DaoPeca().consultarPeca(codigo);

        out.print(""+peca.getDescricao()+";");
        out.print(""+Float.toString(peca.getPreco())+"");
 }
 else {
        //nothing to show
        response.setStatus(HttpServletResponse.SC_NO_CONTENT);
    }
%>

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Você não conseguir fazer isso de forma organizada.

Recomendo que adicione um identificador em cada "grupo" de inputs, e trabalhe com eles na hora de gerar a query do DB.

Algo como...

txt_codpeca:1

txt_descpeca:1

txt_precopeca:1

txt_quantpeca:1

txt_subtotalp:1

e no próximo...

txt_codpeca:2

txt_descpeca:2

txt_precopeca:2

txt_quantpeca:2

txt_subtotalp:2

É o que eu faço.

Porém, caso você realmente queria ficar na gambiarra, você pode usar a função getElementsByTagName.

var Vetor = document.getElementsByTagName('input');
Já que cada "grupo" de inputs seu tem 5 campos, seria algo como:
Vetor[0] // 1º txt_codpeca
Vetor[1] // 1º txt_descpeca
...
Vetor[8] // 2º txt_quantpeca

Mas é feio... estraga totalmente a idéia de usar IDs nos campos, visto que a intenção é torná-los únicos.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...