• User Attivo

    Grazie! 😄 Anche se per ora qui in asp c'è poco movimento :ciauz:


  • User

    riprendiamo dai campi hidden (le session me le sto studiando per altri scopi, di cui sarete messi al corrente con dovizia di particolari..non dubitate.)
    ho fatto come suggerisce legolas facendo due paginette di prova (4 sole text) ma nella pagina 2 quando clicco sulla text4 per ottenere una somma mi segnala errore, all'apparenza mi pare tutto in ordine dov'è l'errore?
    questi i codici delle pagine:

    es1.asp
    <html>
    <head><title>pezzo1</title>
    </head>
    <body>
    <script="text/javascript" src="fun.js">
    </script>
    <form name="f1" method="post" action="es2.asp">
    Nome <input type="text" onkeyup="fun(this.form)" name="t1" id="t1"/>
    Cognome <input type="text" onkeyup="fun(this.form)" name="t2" id="t2"/>
    <input type="submit" value="invia"/>
    </form>
    </body>
    </html>

    es2.asp<html>
    <head><title>pezzo2</title>
    </head>
    <body>
    <script="text/javascript" src="fun.js">
    </script>
    <form name="f1" method ="post" >
    <input type="text" onkeyup="fun(this.form)" name="t3" id="t3"/> <input type="text" onkeyup="fun(this.form)" name="t4" id="t4"/>
    <input type="hidden" name="t1" id="t1" value="<%=Request.Form("t1")%>"/>
    <input type="hidden" name="t2" id="t2" value="<%=Request.Form("t2")%>"/>
    </form>
    </body>
    </html>

    mi dice che alla riga incriminata è "previsto oggetto" (?) non riesco proprio a vedere cosa non va.

    Salve, a tutti, per prima cosa complimenti a madai e paocavo, che come sempre sono di grandissimo aiuto a tutti i membri del forum, con i loro preziosi consigli.

    mi associo pienamente :yuppi:

    Ps 
    

    A settembre ho l'esame di chimica ad ingegneria, e ti premetto che sfrutterò le tue conoscenze

    sarò sotto l'ombrellone ma CONTACI.
    ciao a tutti e grazie.


  • User Attivo

    @zwack said:

    mi dice che alla riga incriminata è "previsto oggetto" (?) non riesco proprio a vedere cosa non va.

    È un errore javascript. Facciamo una cosa all volta 🙂 Elimina il javascript.

    Cmq ti consiglio di inserire l'include nell'head non nel body.


  • User

    i valori mi passano regolarmente (ho fatto una prova con campi visibili ed è tutto ok) ho bisogno della funzione, che sta tra i tag head (errore di copia e incolla qui), perchè il form effettua una somma e questa è a posto perchè sulla maschera intera funziona bene. dov'è l'inghippo?
    :bho:


  • User Attivo

    incollaci la funzione fun()


  • Moderatore

    saremmo un tantino OT, comunque sia facci vedere la funzione javascript, almeno vediamo dove sta l'errore

    sarò sotto l'ombrellone ma CONTACI.
    Ci conti si 😄

    Ciao :ciauz: :ciauz:


  • User

    eccola:

    function fun() {
    var v1=f.t1.value;
    var v2=f.t2.value;
    var v3=f.t3.value;
    if (v1=="" || v2=="" || v3=="") return;
    v1=parseInt(v1);
    v2=parseInt(v2);
    v3=parseInt(v3);
    f.t4.value=v1+v2+(v3-40);
    }
    come ti dicevo nel form originale (quello che devo suddividere) mi funziona regolarmente, qui non capisco proprio come mai non vuole saperne.
    grazie.


  • Moderatore

    Io la cambierei così:

    
    function fun&#40;&#41; &#123;
      var v1=document.getElemtById&#40;"t1"&#41;.value;
      var v2=document.getElemtById&#40;"t2"&#41;.value;
      var v3=document.getElemtById&#40;"t3"&#41;.value;
      if &#40;v1=="" || v2=="" || v3==""&#41; return;
      v1=parseInt&#40;v1&#41;;
      v2=parseInt&#40;v2&#41;;
      v3=parseInt&#40;v3&#41;;
      document.getElemtById&#40;"t4"&#41;.value=v1+v2+&#40;v3-40&#41;;
    &#125;
    
    
    

    E la richiami semplicemente
    onquellochetipare = "javascript: fun();"

    ah, mi sono accorto ora di una cosa
    nalla pagina 1 questa funzione non la puoi richiamare perche il campo t3 e t4 non esiste, la puoi richiamare solo nella pag 2, al max puoi scrivere due funzioni diverse, oppure modificarla così:

    
    function fun&#40;pag&#41; &#123;
      if pag != ""&#123;
        var v1=document.getElemtById&#40;"t1"&#41;.value;
        var v2=document.getElemtById&#40;"t2"&#41;.value;
        if pag == 2 &#123;
          var v3=document.getElemtById&#40;"t3"&#41;.value;
          if &#40;v1=="" || v2=="" || v3==""&#41; return;
        &#125;else&#123;
          if &#40;v1=="" || v2==""&#41; return;
        &#125;
        v1=parseInt&#40;v1&#41;;
        v2=parseInt&#40;v2&#41;;
        if pag == 2 &#123;
          v3=parseInt&#40;v3&#41;;
          document.getElemtById&#40;"t4"&#41;.value=v1+v2+&#40;v3-40&#41;;
        &#125;
      &#125;
    &#125;
    
    
    

    Questa funzione funziona (scusate il gioco di parole) solo con 2 pagine per più pag ti tocca adattarla, puoi fare anche qualche cosa di più complesso, io ho un po' schematizzato
    Ciao


  • User Attivo

    getElemtById

    getElementById 🙂


  • User

    provato nuovo codice suggerito, ma anche così mi restituisce lo stesso errore, sono allo sconforto.
    😢


  • User

    :yuppi: :yuppi:
    fatto! funziona! era un banale orrore di ortografia.
    vi ringrazio tutti per la pazienza e la gentilezza, siete grandi.
    ciao
    :fumato:


  • Moderatore

    @madai said:

    getElemtById

    getElementById 🙂

    il copia incolla può essere fatale :fumato: :fumato:


  • User Attivo

    visto che ti funziona lascialo stare così ma visto che l'ho scritto ti posto anche questo codice che potresti riutilizzare tale e quale in tutte le pagine in quanto controlla l'esistenza del campo nella pagina.

    (non l'ho testata):

    
    function fun&#40;&#41; &#123;
      var tot;
      var v = new Array&#40;&#41;;
      for &#40;var i=1; i < 4; i++&#41; &#123;
        if &#40;document.getElemtById&#40;"t"+i&#41; != undefined&#41; &#123;
          v&#91;i&#93; = document.getElemtById&#40;"t"+i&#41;.value;
        &#125;
        if &#40;v&#91;i&#93;==""&#41; return;
        tot = v&#91;i&#93; + tot;
      &#125;
      document.getElemtById&#40;"t4"&#41;.value=tot;
    &#125;
    
    

  • User

    bello, ma ci ho capito poco saresti così gentile da spiegarmi, come funziona?
    grazie.


  • User Attivo

    function fun() {
    var tot;
    var v = new Array();
    for (var i=1; i < 4; i++) { //ciclo for: il blocco di codice che va dalla riga seguente in poi fino alla riga tot = v* + tot; verrà ripetuto 4 volte, ad ogni passaggio i verrà incrementato di 1
    if (document.getElemtById("t"+i) != undefined) { // controllo che il campo con ID=ti dove al psto di i ci sarà un numero compreso tra 1 e 4. Se esistesse memorizzo il relativo valore nel seguente elemento dell'array
    v* = document.getElemtById("t"+i).value;
    }
    if (v*=="") return;
    tot = v* + tot;
    }
    document.getElemtById("t4").value=tot;
    }


  • User

    grande madai, sono riuscito a far funzionare anche questa, per piccole che siano, queste si, che son soddisfazioni!
    di nuovo grazie di tutto a tutti.


  • User Attivo

    bravo zwack! 🙂