Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    $.ajax is not a function, jquery lib 3.3.1.min.js

    Buonasera a tutti,

    sto scrivendo una funzione in ajax che apporta modifiche ad un record di un database mysql tramite una pagina php esterna a quella in cui mi trovo.

    nella pagina php in cui ho inserito la funzione ajax ho inserito il collegamento alla libreria

    <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
    crossorigin="anonymous"></script>

    quindi ho scritto la funzione

    $.ajax({
    url: "change-commessa.php",
    method: 'POST',
    data: "{'codComm':" + codCom + "', codRecord': " + selRec + "'}",
    dataType: 'json',
    success: function(response){
    console.log(response);
    }
    });

    che viene eseguita dopo aver recuperato i dati da un controller html select.
    Quando verifico nella console del browser l'esecuzione della funzione, il risultato &eacute; questo errore:

    Uncaught TypeError: $.ajax is not a function

    Ho letto che, spesso, questo errore lo si ottiee in seguito al collegamento alla versione 'slim' della libreria jQuery. In questo caso, il collegamento alla libreria corrisponde con la versione full.

    Come posso risolvere? Qualcuno di voi ha gi� avuto lo stesso problema? Se s&igrave; come avete risolto?
    Grazie.
    MB

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,505
    Ciao benvenuto sul forum

    1) Utilizza il tag code per inserire il codice. Rende più facile la lettura e quindi chi ti vuole aiutare

    2) Questo

    codice:
    $.ajax({
    url: "change-commessa.php",
    method: 'POST',
    data: "{'codComm':" + codCom + "', codRecord': " + selRec + "'}",
    dataType: 'json',
    success: function(response){
    console.log(response);
    }
    });
    deve essere messo dopo


    codice:
    <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
    crossorigin="anonymous"></script>
    verifica e in caso non funzioni posta il codice completo della pagina
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    @ciro78 grazie per la risposta.
    Nella pagina php il seguente codice l'ho inserito dentro i tag <head></head>

    codice:
    <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
    crossorigin="anonymous"></script>
    
    mentre la funzione è posta in fondo alla pagina

    codice:
    $.ajax({
    url: "change-commessa.php",
    method: 'POST',
    data: "{'codComm':" + codCom + "', codRecord': " + selRec + "'}",
    dataType: 'json',
    success: function(response){
    console.log(response);
    }
    });
    quindi se non ho capito male è già come mi hai suggerito.
    Di seguito posto il codice di tutta la pagina, omettendo le inclusioni di connessione al db, quindi ciò che ho scritto da html in poi.

    codice:
    <html>
    <head>
    <title>Dettagli</title>
    <script
      src="https://code.jquery.com/jquery-3.3.1.js"
      integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
      crossorigin="anonymous"></script>
    </head>
    <body>
    <div class="container-fluid">
    <div class='row flex-xl-nowrap'>
    <main role="main">
    <?php
    //qui c'è tutto il codice della tabella con la lista dei record prelevati dal db
    //posto solo la parte del select che passa i valori alla funzione ChangeComm
    [..omissis..]
    if(isset($_REQUEST['changecom'])){
                        //se c'è la variabile changecom visualizzo il form
                        echo "<td>";
                        echo "<select onchange='ChangeComm()' data-record='".$rowd['id_doc_dettaglio']."' class='custom-select custom-select-sm'  id='codComm'>";
                        $sqlcm = "SELECT `t_commessa`.`id_commessa`, `t_commessa`.`year`, `t_commessa`.`num_commessa`, `t_commessa`.`nome_commessa`, `t_commessa_utente`.`cod_commessa`, `t_commessa_utente`.`cod_user` FROM `t_commessa` INNER JOIN `t_commessa_utente` ON `t_commessa_utente`.`cod_commessa`= `t_commessa`.`id_commessa` WHERE `t_commessa_utente`.`cod_user`= ".$coduser." ORDER BY `id_commessa` DESC";
                        $qycm = mysqli_query($conn, $sqlcm);
                        while($rowcm = mysqli_fetch_assoc($qycm)){
                            if($rowcm['id_commessa']==$_REQUEST['id_comm']){
                                //se il numero di commessa è uguale a quello del recordo la commessa corrente è preselezionata
                                echo "<option value='".$rowcm['id_commessa']."' selected disabled>[".$rowcm['num_commessa']."&bullet;".$rowcm['year']."] ".ucwords(strtolower($rowcm['nome_commessa']))."</option>";
                            }else{
                                //altrimenti non lo è
                            echo "<option value='".$rowcm['id_commessa']."'>[".$rowcm['num_commessa']."&bullet;".$rowcm['year']."] ".ucwords(strtolower($rowcm['nome_commessa']))."</option>";
                                }
                        }mysqli_free_result($qycm);//canc mem lista commesse
                        echo "</select>";
                        echo "</td>";
                    }else{
                //pulsante cambia commessa
                echo "<td style='width: 10%'><a href='".$full_url."&changecom=".$rowd['id_doc_dettaglio']."&record=".$rowd['id_doc_dettaglio']."' class='btn btn-sm btn-outline-warning'>cambia commessa</a></td>";
                        }
    [..omissis..]
    ?>
    </main>
    </div></div>
    <script type="text/javascript">
        //funzione di aggiornamento del record contenuto nel database e refreshing della pagina
         function ChangeComm(){
            var codCom = document.getElementById('codComm').value;
             
            //var selRec = document.getElementById('codComm').getAttribute('data-record').value;
            var selRec = document.getElementById('codComm').dataset.record;
            
            
            console.log(codCom);
            console.log(selRec);
            
            $.ajax({
                url: "change-commessa.php",
                method: 'POST',
                data: "{'codComm':" + codCom + "', codRecord': " + selRec + "'}",
                dataType: 'json',
                success: function(response){
                    console.log(response);
                }
            });
            
        };
        </script>
    
    </body>
    </html>
    Grazie mille per la disponibilità
    MB

  4. #4
    Utente di HTML.it L'avatar di SkyLinx
    Registrato dal
    Jun 2017
    residenza
    Espoo, Finland
    Messaggi
    60
    Ti succede anche se usi jQuery.ajax?
    The only way to stay sane is to go a little crazy. - Susanna Kaysen

  5. #5
    Non so non ho provato. Verifico e poi posto.
    MB

  6. #6
    Sono riuscito a risolvere.

    Il problema era dato dal fatto che, a fine pagina, avevo inserito il caricamento del jQuery.min.js.
    Questa impostazione sovrascriveva il caricamento del jQuery.js che facevo a inizio pagina.

    Errore da nottambulo.

    Ringrazio comunque @ciro78 e @SkyLinx per aver dedicato tempo al mio problema.
    Grazie.
    MB

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.