[Javascript] tabella dinamica e onchange su funzione

  • Creatore Discussione Creatore Discussione AlP
  • Data di inizio Data di inizio

AlP

Nuovo Utente
18 Mar 2018
7
0
1
40
Ciao a tutti,

ho una tabella generata dinamicamente con javascript, ho un autocomplete sul primo campo il cui valore viene utilizzato per ridarmi la quantità presente sul database. Ora il problema, il tutto funziona solo la prima volta che viene aggiunta la nuova riga, la seconda volta funziona solo l'autocomplete ma onchange no...
Vi riporto lo script, magari sapete darmi una dritta!!!
Codice:
<!--
var num=1;
function accoda(){
    if(document.createElement && document.getElementById && document.getElementsByTagName) {
        // crea elementi
        var oTr=document.createElement("TR");
        var oTd1=document.createElement("TD");
        var oTd2=document.createElement("TD");
        
var oField=document.createElement("INPUT");
 $(function() {
    $(oField).autocomplete({
        source: "search_scarico.php",
                        });
    
    });
    


    
     
          var oFieldB=document.createElement("INPUT"); 
          var oFieldC=document.createElement("INPUT"); 
          var oFieldD=document.createElement("INPUT"); 
          var oFieldE=document.createElement("INPUT");
          var oFieldF=document.createElement("INPUT");
            
        var oButt=document.createElement("INPUT");


        // setta attributi
        oField.setAttribute("type","text");
        oField.setAttribute("name","codice_"+num);
        oField.setAttribute("id","codice_");
        oField.setAttribute("placeholder","Nome Prodotto");
        
        oField.onchange=(function Function()
    {
       var codice_ = document.getElementById("codice_").value;
       //alert (codice_);
      
       $.ajax({  //ajax call
        type: "POST",      //method == POST 
        url: "prova_c_.php", //url to be called
        data: "codice_="+codice_, //data to be send 
        
        success: function(data){
            //alert (data).val();
             $("#giacenza_").val(data); // here we will set a value of text box
           }
        });
    });
        
        
        
                oFieldB.setAttribute("type","text");
                oFieldB.setAttribute("name","giacenza_"+num);
                oFieldB.setAttribute("id","giacenza_");
                oFieldB.setAttribute("placeholder","Giacenza");
                oFieldB.setAttribute("readonly","");
                
                oFieldC.setAttribute("type","text");
                oFieldC.setAttribute("name","qta_"+num); 
                oFieldC.setAttribute("placeholder","Quantita'");
                
                
                oFieldD.setAttribute("type","text");
                oFieldD.setAttribute("name","data_scarico_"+num); 
                oFieldD.setAttribute("value","<?php echo date("Y/m/d"); ?>");
                
                oFieldE.setAttribute("type","checkbox");
                oFieldE.setAttribute("name","self_"+num);
                
                oFieldF.setAttribute("value","Self");
                oFieldF.setAttribute("size","7");
                
        oButt.setAttribute("type","button");
        oButt.setAttribute("class","btn btn-danger");
        oButt.setAttribute("value","rimuovi");


        // setta gestore evento
        if(oButt.attachEvent) oButt. attachEvent('onclick',function(e){rimuovi(e);})
        else if(oButt.addEventListener) oButt. addEventListener('click',function(e){rimuovi(e);},false)


        // appendi al relativo padre
        oTd1.appendChild(oField);
            oTd1.appendChild(oFieldB); 
            oTd1.appendChild(oFieldC);
            oTd1.appendChild(oFieldD);
            oTd1.appendChild(oFieldE);
            oTd1.appendChild(oFieldF);
            
        oTd2.appendChild(oButt);
        oTr.appendChild(oTd1);
        oTr.appendChild(oTd2);
        document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(oTr);


    document.getElementById('iterazioni_form_aggiuntivi').value = num;
        // incrementa variabile globale
        num++
    }
}

Grazie a tutti!!!
 
Da quello che sto vedendo il valore rimane sempre quello della prima riga creata, in pratica la funzione non si accoda... Chi mi saprebbe aiutare?
 

Discussioni simili