Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,523

    errore Uncaught ReferenceError: (funzione) is not defined at HTMLInputElement.onclick

    Salve
    ho 2 pagine.
    La pagina1 chiama pagina2 tramite ajax.
    Sulla seconda c'è la funzione che non è definita ma l'errore completo è:

    pagina1.asp:1 Uncaught ReferenceError: Baumenta808 is not defined at HTMLInputElement.onclick (pagina.asp:1)
    onclick @ pagina1.asp:1

    Come posso risolvere?
    C'è qualche debug per capire qualche script possa entrare in conflitto?
    Perchè provando solo la pagina2 la funzione javascript funziona.
    Grazie per l'aiuto

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,905
    Quote Originariamente inviata da djjunior Visualizza il messaggio
    Come posso risolvere?
    Non hai riportato nemmeno una riga di codice... come possiamo anche solo fare supposizioni su quello che hai scritto e sul motivo per cui non funziona come dovrebbe?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,523
    è un pò complicato pubblicare tutto il codice ma ci provo pubblicando la parte interessata:
    PAG1:
    codice:
    <script src="https://code.jquery.com/jquery.min.js"></script>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    <link rel="stylesheet" href="css/jquery-ui.css" type="text/css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    
    
    
    <script type="text/javascript">
    document.documentElement.className = 'js';
    $(function() {
    $('#sendx').click(function(e) {
    var cal =  document.getElementById("cal").value;
    var cli =  document.getElementById("cli").value;
    
    $.ajax({
       type: 'GET',
       url: 'pag2.asp',
       data: "Pag=ca&Cli=" + "&q="+cal ,
       dataType: 'html',
        success:function(result){    
                 if(result==0)
                   $('#ordini').hide();            
                          else
                    $('#ordini').html(result).show();        
                                
                }
          })
    
       })
     })
    </script>
    
    
    
    
    
    
    
    <div id="ordini">
    <%
    sql="SELECT * FROM xdb WHERE Op="
    sql=sql & "'" & Session("autenticato3") & "' and Pag ='ca' Order by TSA desc"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, Connarca, 3, 3
    
    if rs.eof then
    else
    %>
    <table border="0" style="max-width:597px;" width="100%" id="elenco" cellspacing="0" cellpadding="0">
        <tr id="<%=rs.fields("id")%>">
            <td style='border-left:none;border-right:none;border-top:none' width="904" height="10" style="border-color: #000000"><b><font>DOC</font></b></td>
        <td width="23" style='border-left:none;border-right:none;border-top:none' style="border-color: #000000" >
    </td>
        </tr>
        <%
    do while not rs.eof
    %>
    <script type="text/javascript">
    $(function() {
    $('.delete<%=rs.fields("id")%>').click(function(e) {
    var mio_id<%=rs.fields("id")%> = $("#elemento<%=rs.fields("id")%>").val();
    var ses_id<%=rs.fields("id")%> = $("#ses<%=rs.fields("id")%>").val();
    $.ajax({
       type: 'GET',
       url: 'del_ses.asp',
       data: "id=" + mio_id<%=rs.fields("id")%> + "&Operatore=" +  ses_id<%=rs.fields("id")%> ,
       dataType: 'html'
          })
    var row = $(this).closest('tr');
    row.remove();
      if($('#elenco tr').length == 1) {
         $('#elenco').remove();
         $('#bsub').remove();
         $('#bsuba').css('display','block');
    }
       })
    })
    </script>
    <script type="text/javascript">
    function add_quantity<%=rs.fields("id")%>() {
    var mio_id<%=rs.fields("id")%> = $("#elemento<%=rs.fields("id")%>").val();
    var add_id<%=rs.fields("id")%> = $("#add_qta<%=rs.fields("id")%>").val();
    var ses_id<%=rs.fields("id")%> = $("#ses<%=rs.fields("id")%>").val();
    $.ajax({
       type: "GET",
       url: "add_q.asp",
       data: "id=" + mio_id<%=rs.fields("id")%> +"&qta=" + add_id<%=rs.fields("id")%> + "&Op=" +  ses_id<%=rs.fields("id")%> ,
       dataType: 'html'
       });
    $("#ordini").load($(this).attr("href") + " #ordini");
    $("#icons").load(location.href + " #icons");
     }
     </script>
    <%
    qta_reca = FormatNumber(rs("Qta"),3,,,0)
    qta_rec = Replace(qta_reca,"," ,".") 
    %>
    <%
    stringa= rs.fields("Descrizione")
    stringa_tagliata= TagliaStringa(stringa, 40)
    %>
    
    <script>
        function aumenta<%=rs.fields("id")%>() {
        numero = document.getElementById("add_qta<%=rs.fields("id")%>").value;
        numero++;
        document.getElementById("add_qta<%=rs.fields("id")%>").value = parseFloat(Math.round(numero * 1000) / 1000).toFixed(3);
        }
        function diminuisci<%=rs.fields("id")%>() {
        numero = document.getElementById("add_qta<%=rs.fields("id")%>").value;
        if(numero>0)numero--;
        document.getElementById("add_qta<%=rs.fields("id")%>").value = parseFloat(Math.round(numero * 1000) / 1000).toFixed(3);
        }
        function add_quantity_plus<%=rs.fields("id")%>() {
        var mio_id<%=rs.fields("id")%> = $("#elemento<%=rs.fields("id")%>").val();
        var add_id<%=rs.fields("id")%> = $("#add_qta<%=rs.fields("id")%>").val();
        var ses_id<%=rs.fields("id")%> = $("#ses<%=rs.fields("id")%>").val();
        $.ajax({
           type: "GET",
           url: "add_q.asp",
           data: "id=" + mio_id<%=rs.fields("id")%> +"&qta=" + add_id<%=rs.fields("id")%> + "&Op+=" +  ses_id<%=rs.fields("id")%> ,
           dataType: 'html'
           });
           $("#ordini").load($(this).attr("href") + " #ordini");
           $("#icons").load(location.href + " #icons");
         }
        </script>
        <tr>
            <td width="100%" style='border-left:none;border-right:none;border-bottom:none' ><p class="griglia"><%=rs.fields("Cd_AR")%> - <%=rs.fields("Descrizione")%>
                <br>Nr:
                <input type="text" style="max-width:90px;font-size:14px;text-align: right;margin-top:-1px;border-radius: 8px;" id="add_qta<%=rs.fields("id")%>" name="Qta" value="<%=qta_rec%>" 
    
    AUTOCOMPLETE="Off" onkeyup="aadd_quantity<%=rs.fields("id")%>()"> 
                <input type=button value="+" onclick="aumenta<%=rs.fields("id")%>(); add_quantity_plus<%=rs.fields("id")%>()"> |
                <input type=button value=" - " onclick="diminuisci<%=rs.fields("id")%>(); add_quantity_plus<%=rs.fields("id")%>()">
                <%=rs.fields("Um")%> da <%=rs.fields("fattore")%>
                
    
    
                
        </td>
            <td width="23" style='border-left:none;border-right:none;border-bottom:none' >
            <div class="delete<%=rs.fields("id")%>"><p align="center"><img src="images/icone/cestino.png"  height="20"></div>
    </td>
        </tr>
        <%
    
    rs.MoveNext
    loop
    %></table></form>
    <%
    rs.close
    end if
    %></div>
    pag2:
    codice:
    <script src="https://code.jquery.com/jquery.min.js"></script>
    <script type="text/javascript" src="https://code.jquery.com/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    
    
    <table border="0" style="max-width:597px;" width="100%" id="elenco" cellspacing="0" cellpadding="0">
        <tr id="<%=rs.fields("id")%>">
            <td style='border-left:none;border-right:none;border-top:none' width="904" height="10" style="border-color: #000000"><b><font>DOC</font></b></td>
        <td width="23" style='border-left:none;border-right:none;border-top:none' style="border-color: #000000" >
    </td>
        </tr>
        <%
    do while not rs.eof
    %>
    <script type="text/javascript">
    $(function() {
    $('.delete<%=rs.fields("id")%>').click(function(e) {
    var mio_id<%=rs.fields("id")%> = $("#elemento<%=rs.fields("id")%>").val();
    var ses_id<%=rs.fields("id")%> = $("#ses<%=rs.fields("id")%>").val();
    $.ajax({
       type: 'GET',
       url: 'del_ses.asp',
       data: "id=" + mio_id<%=rs.fields("id")%> + "&Operatore=" +  ses_id<%=rs.fields("id")%> ,
       dataType: 'html'
          })
    var row = $(this).closest('tr');
    row.remove();
      if($('#elenco tr').length == 1) {
         $('#elenco').remove();
         $('#bsub').remove();
         $('#bsuba').css('display','block');
    }
       })
    })
    </script>
    <script type="text/javascript">
    function add_quantity<%=rs.fields("id")%>() {
    var mio_id<%=rs.fields("id")%> = $("#elemento<%=rs.fields("id")%>").val();
    var add_id<%=rs.fields("id")%> = $("#add_qta<%=rs.fields("id")%>").val();
    var ses_id<%=rs.fields("id")%> = $("#ses<%=rs.fields("id")%>").val();
    $.ajax({
       type: "GET",
       url: "add_q.asp",
       data: "id=" + mio_id<%=rs.fields("id")%> +"&qta=" + add_id<%=rs.fields("id")%> + "&Op=" +  ses_id<%=rs.fields("id")%> ,
       dataType: 'html'
       });
    $("#ordini").load($(this).attr("href") + " #ordini");
    $("#icons").load(location.href + " #icons");
     }
     </script>
    <%
    qta_reca = FormatNumber(rs("Qta"),3,,,0)
    qta_rec = Replace(qta_reca,"," ,".") 
    %>
    <%
    stringa= rs.fields("Descrizione")
    stringa_tagliata= TagliaStringa(stringa, 40)
    %>
    
    <script>
        function aumenta<%=rs.fields("id")%>() {
        numero = document.getElementById("add_qta<%=rs.fields("id")%>").value;
        numero++;
        document.getElementById("add_qta<%=rs.fields("id")%>").value = parseFloat(Math.round(numero * 1000) / 1000).toFixed(3);
        }
        function diminuisci<%=rs.fields("id")%>() {
        numero = document.getElementById("add_qta<%=rs.fields("id")%>").value;
        if(numero>0)numero--;
        document.getElementById("add_qta<%=rs.fields("id")%>").value = parseFloat(Math.round(numero * 1000) / 1000).toFixed(3);
        }
        function add_quantity_plus<%=rs.fields("id")%>() {
        var mio_id<%=rs.fields("id")%> = $("#elemento<%=rs.fields("id")%>").val();
        var add_id<%=rs.fields("id")%> = $("#add_qta<%=rs.fields("id")%>").val();
        var ses_id<%=rs.fields("id")%> = $("#ses<%=rs.fields("id")%>").val();
        $.ajax({
           type: "GET",
           url: "add_q.asp",
           data: "id=" + mio_id<%=rs.fields("id")%> +"&qta=" + add_id<%=rs.fields("id")%> + "&Op+=" +  ses_id<%=rs.fields("id")%> ,
           dataType: 'html'
           });
           $("#ordini").load($(this).attr("href") + " #ordini");
           $("#icons").load(location.href + " #icons");
         }
        </script>
        <tr>
            <td width="100%" style='border-left:none;border-right:none;border-bottom:none' ><p class="griglia"><%=rs.fields("Cd_AR")%> - <%=rs.fields("Descrizione")%>
                <br>Nr:
                <input type="text" style="max-width:90px;font-size:14px;text-align: right;margin-top:-1px;border-radius: 8px;" id="add_qta<%=rs.fields("id")%>" name="Qta" value="<%=qta_rec%>" AUTOCOMPLETE="Off" onkeyup="aadd_quantity<%=rs.fields("id")%>()"> 
                <input type=button value="+" onclick="aumenta<%=rs.fields("id")%>(); add_quantity_plus<%=rs.fields("id")%>()"> |
                <input type=button value=" - " onclick="diminuisci<%=rs.fields("id")%>(); add_quantity_plus<%=rs.fields("id")%>()">
                <%=rs.fields("Um")%> da <%=rs.fields("fattore")%>
                
    
    
                
        </td>
            <td width="23" style='border-left:none;border-right:none;border-bottom:none' >
            <div class="delete<%=rs.fields("id")%>"><p align="center"><img src="images/icone/cestino.png"  height="20"></div>
    </td>
        </tr>
        <%
    
    rs.MoveNext
    loop
    %></table>
    </form>
    <%
    rs.close
    end if
    %>
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,523
    naturalmente il Baumenta808 is not defined (che ho scritto al primo post) è riferito alla pag2 e alla funzione aumenta<=%rs.fields("id")%>(), succede anche per le altre funzioni, diminuisci e il click al cestino, grazie

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,905
    Quote Originariamente inviata da djjunior Visualizza il messaggio
    naturalmente il Baumenta808 is not defined (che ho scritto al primo post) è riferito alla pag2 e alla funzione aumenta<=%rs.fields("id")%>(), succede anche per le altre funzioni, diminuisci e il click al cestino, grazie
    Perdona la schiettezza, ma questa implementazione è impossibile da interpretare: l'idea di valorizzare il nome di una funzione JavaScript con l'ID di un elemento del server, preso da un record, ripetendo la dichiarazione di una funzione sempre identica per un numero indefinito di volte, e generando il tutto lato ASP mescolando un linguaggio con un altro, è del tutto assurda, inutilmente complessa oltreché priva di senso.

    Rifattorizza assolutamente il codice che hai scritto implementando una sola e singola funzione per ogni azione che devi fare, e l'ID dell'elemento su cui devi lavorare lo passi come parametro alla funzione, senza crearne una per ogni elemento che, oltre a essere uno spreco, rende difficile fare verifiche su un codice che mescola parti lato client e lato server ed è quindi già complicato di suo da analizzare.

    Usa correttamente JQuery, usa i Data Attributes per memorizzare l'ID dell'elemento (record) a cui si riferiscono determinate informazioni o si applicano azioni dell'utente.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.