Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    chiamata ajax con Jquery non sempre funzionante

    Buongiorno a tutti,
    Premetto che è da poco che mi sto avvicinando a linguaggi web, quindi spero che i miei quesiti non siano banali.
    Stavo realizzando una schermata di login, scopiazzando un po' di codice sul web e aggiungendo jquery per poter visualizzare sulla stessa schermata i classici errori (utente non esiste.. pwd errata..). So due giorni però che non riesco a venire a capo di un problema. Vi posto prima di tutto il codice:


    file: test_login.html

    ....

    <link href="css/login.css" rel="stylesheet" type="text/css" />
    <script src="jq/jquery-1.11.1.js"></script>
    <body>
    <form id="login" method="post">


    <fieldset id="inputs">
    <input id="username" name="username" type="text" placeholder="Username" autofocus>
    <input id="password" name="password" type="password" placeholder="Password" >
    </fieldset>
    <fieldset id="actions">
    <input type="submit" id="submit" value="Collegati" name="log">
    <br />
    <br />
    <br />
    <label id="mex" style="display: none;">messaggi errore</label>

    </fieldset>
    </form>
    </body>
    <script>
    $(document).ready(function(){
    $('#submit').click(function(){
    var username=$('#username').val();
    var password=$('#password').val();


    //alert(username + " " + password)

    $.ajax({
    url:"Login.php",
    type: "POST",
    data: { username: username, password: password},
    //data: { username: "xxx", password: "yy"},
    success:function(result){
    //alert(result)

    if (result=='err')
    {
    alert('errore')
    // codice per visualizzare errore sul label "mex"
    }
    else
    {
    alert('ok')
    document.location.href="main.php"
    } // fine if

    },

    }); // fine .ajax
    }) // fine .click


    }) //fine document ready

    </script>

    </html>

    file Login.php

    ...

    <?php
    //Quì va inserita la routine di sessione
    //include("include/session_save_handler.inc");
    require_once('include/config.inc');
    require_once('include/user_manager.inc');
    require_once('include/session_save_handler.inc');
    session_start();
    $_SESSION['id'] = session_id();
    //$sessione = session_id();
    $username = $_POST['username'];
    $password = $_POST['password'];

    $myLogin = new UserManager;
    $user = $myLogin->login($username, $password);


    if ( substr($user,0,6)!== "ERRORE") {

    //header("Location: main.php");
    echo "ok";
    }
    else
    {
    echo "err";
    //echo "ERRORE di Login";
    }

    ?>


    Il file login.php funziona correttamente, e cosi tutta la procedura di login prima che aggiungessi la parte Jquery. La cosa strana è che se gli passo i dati scrivendoli direttamente (nel file sopra ho commentato la riga : //data: { username: "xxx", password: "yy"} ) funziona tutto bene, se però provo ad inserirli nei campi smette di funzionare, come se login.php non mi desse risultati.


    Grazie a tutti già da ora!

  2. #2
    Utente di HTML.it L'avatar di Azucchi
    Registrato dal
    Jul 2014
    Messaggi
    123
    A un primo sguardo ho notato questi errori di punteggiatura.
    codice:
    alert('ok')
    document.location.href="main.php"  -> manca il punto e virgola
    } // fine if
    }, //parentesi graffa di troppo! errore nell'inserimento della virgola -> da eliminare questa riga
    
    }); // fine .ajax
    }) // fine .click  -> manca il punto e virgola
    
    }) //fine document ready ->manca il punto e virgola
    Ultima modifica di Azucchi; 27-08-2014 a 15:49 Motivo: Scoperta nuovo errore

  3. #3
    Quote Originariamente inviata da Azucchi Visualizza il messaggio
    A un primo sguardo ho notato questi errori di punteggiatura.
    codice:
    
    alert('ok')
    document.location.href="main.php"  -> manca il punto e virgola
    } // fine if
    }, //parentesi graffa di troppo! errore nell'inserimento della virgola -> da eliminare questa riga
    
    }); // fine .ajax
    }) // fine .click  -> manca il punto e virgola
    
    }) //fine document ready ->manca il punto e virgola
    Innanzi tutto grazie per la risposta. Ho seguito i tuoi suggerimenti ma niente.. Le parentesi graffe che mi suggerivi di togliere erano quelle del "success" della chiamata Ajax. Sembra che a volte non venga eseguito il file "Login.php".

    Riposto il codice in modo più ordinato:
    codice:
    file: test_login.html 
    
     ....
    <!DOCTYPE html>
    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>testLogin</title>
    </head>
    <link href="css/login.css" rel="stylesheet" type="text/css" />
    <script src="jq/jquery-1.11.1.js"></script>
    <body>
    <form id="login" method="post">
     
      
        <fieldset id="inputs">
                <input id="username" name="username" type="text" placeholder="Username" autofocus > 
                <input id="password" name="password" type="password" placeholder="Password" >
            </fieldset>
            <fieldset id="actions">
                <input type="submit" id="submit"  value="Collegati" name="log">
                <br />
                <br />
                <br />
                 <label id="mex" style="display: none;">ffff</label>
              
            </fieldset>
        
    <!--
        <table>
      <tr>
       <td><label id="username">UserName: </label></td><td><input name="username" type="text" /></td>
      </tr>
      <tr>
       <td><label id="password">Password: </label></td><td><input name="password" type="password" /></td>
      </tr>
      <tr>
       <td></td><td style="border-radius: 3px; text-align:right">
       <input name="Submit1" type="submit" value="INVIA" style="border-radius: 3px; text-align:right" /></td>
      </tr>
     </table>
    -->
    </form>
    </body>
    <script>
    
    $(document).ready(function(){
        $('#submit').click(function(){
            var username=$('#username').val()
            var password=$('#password').val()
              $.ajax({ 
                url:"Login.php", 
                type: "POST", 
                data: {username: $('#username').val(), password: $('#password').val()}, 
                //data: {username: "XXX", password: "Y"}, 
                success:function(result){ 
                    
                     if (result=='err')
                     {
                        alert('errore')
                     }
                     else
                     {
                        alert('ok')
                        document.location.href="main.php";
                     }
                }; // fine success: 
            });  //fine .ajax
        });  //fine .click
    }); //fine document ready
     
    </script>
    </html>
    
    
    file Login.php
    
     ...
    
    
    <?php
    
    require_once('include/config.inc');
    require_once('include/user_manager.inc');
    require_once('include/session_save_handler.inc');
    session_start();
    $_SESSION['id'] = session_id();
    //$sessione = session_id();
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    $myLogin = new UserManager;
    $user = $myLogin->login($username, $password);
    if ( substr($user,0,6)!== "ERRORE") {
       
     //header("Location: main.php");
        echo "ok";
    }
    else
    {
        echo "err";
        //echo "ERRORE di Login";
    }
     
    ?>
    Grazie ancora.

  4. #4
    Utente di HTML.it L'avatar di Azucchi
    Registrato dal
    Jul 2014
    Messaggi
    123
    codice:
    };// fine success: 
    la parentesi graffa che chiude la funzione da eseguire al success non vuole il punto e virgola. Hai dimenticato altri punti e virgola, ricopia il codice come ce l'hai.

  5. #5
    Anche senza punto e virgola è uguale, se gli passo direttamente i dati (riga commentata) funziona senno no.

    grazie tante per la disponibilità.

    ecco il codice:
    codice:
    <!DOCTYPE html>
    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>testLogin</title>
    </head>
    <link href="css/login.css" rel="stylesheet" type="text/css" />
    <script src="jq/jquery-1.11.1.js"></script>
    <body>
    <form id="login" method="post" action="">
     
        
        <fieldset id="inputs">
                <input id="username" name="username" type="text" placeholder="Username" autofocus required> 
                <input id="password" name="password" type="password" placeholder="Password" required>
            </fieldset>
            <fieldset id="actions">
                <input type="submit" id="submit"  value="Collegati" name="log">
                <br />
                <br />
                <br />
                 <label id="mex" style="display: none;">ffff</label>
                <!--<input id="cc" name="cc" type="text">-->
            </fieldset>
        
        <!--
        <table>
      <tr>
       <td><label id="username">UserName: </label></td><td><input name="username" type="text" /></td>
      </tr>
      <tr>
       <td><label id="password">Password: </label></td><td><input name="password" type="password" /></td>
      </tr>
      <tr>
       <td></td><td style="border-radius: 3px; text-align:right">
       <input name="Submit1" type="submit" value="INVIA" style="border-radius: 3px; text-align:right" /></td>
      </tr>
     </table>
    -->
    </form>
    </body>
    <script>
    
    $(document).ready(function(){
        $('#submit').click(function(){
            var username=$('#username').val();
            var password=$('#password').val();
            
              $.ajax({ 
                
                url:"Login.php", 
                
                type: "POST", 
                data: {username: $('#username').val(), password: $('#password').val()}, 
                //data: { username: "nico", password: "1"}, 
                success:function(result){ 
                    //alert(result)
                     if (result=='err') {
                        alert('errore')
                     }
                     else
                     {
                        alert('ok')
                     }
                } //fine success
            
        
            }); // fine .ajax
        }); // fine .click
        
    }); //fine document ready
     
    </script>
     
    </html>

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ho sistemato un po il codice e ho cambiato alcuni id dovrebbe andare (da verificare se usando il tasto submit il form venga eseguito ugualmente in tal caso cambialo con un button)
    codice:
    <!DOCTYPE html>
    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>testLogin</title>
    </head>
    <link href="css/login.css" rel="stylesheet" type="text/css" />
    <script src="jq/jquery-1.11.1.js"></script>
    <body>
    <form id="login" method="post" action="">
        <fieldset id="inputs">
                <input id="user_name" name="user_name" type="text" placeholder="Username" autofocus required> 
                <input id="pass_word" name="pass_word" type="password" placeholder="Password" required>
            </fieldset>
            <fieldset id="actions">
                <input type="submit" id="sub_mit"  value="Collegati" name="log">
                <br />
                <br />
                <br />
                 <label id="mex" style="display: none;">ffff</label>
                <!--<input id="cc" name="cc" type="text">-->
            </fieldset>
        
    
    </form>
    </body>
    <script>
    $(document).ready(function(){
        $('#sub_mit').click(function(){  
              $.ajax({             
                url:"Login.php",           
                type: "POST", 
                data: {'username': $('#user_name').val(), 'password': $('#pass_word').val()}, 
                //data: { username: "nico", password: "1"}, 
                success:function(result){ 
                    //alert(result)
                     if (result=='err') {
                        alert('errore')
                     }
                     else
                     {
                        alert('ok')
                     }
                } //fine success
            
        
            }); // fine .ajax
        }); // fine .click
        
    }); //fine document ready
     
    </script>
     
    </html>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    [QUOTE=(da verificare se usando il tasto submit il form venga eseguito ugualmente in tal caso cambialo con un button)

    [/QUOTE]

    Grazie per i vari suggerimenti Andrea, purtroppo non va ancora. Il comportamento è sempre uguale. se gli invio i dati da form non funziona. Tra l'altro ho notato che se gli passo io i dati ma riempio lo stesso il form e invio non funziona neanche così!! quindi il problema deve risiedere o nel form o nelle input text. Ho provato sia con button che submit..

    ecco il codice:
    codice:
    <!DOCTYPE html>
    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>testLogin</title>
    </head>
    <link href="css/login.css" rel="stylesheet" type="text/css" />
    <script src="jq/jquery-1.11.1.js"></script>
    <body>
    <form id="login" method="post" action="">
        <fieldset id="inputs">
                <input id="user_name" name="user_name" type="text" placeholder="Username" autofocus required> 
                <input id="pass_word" name="pass_word" type="password" placeholder="Password" required>
            </fieldset>
            <fieldset id="actions">
                <!--<input type="submit" id="sub_mit"  value="Collegati" name="log">-->
                <button id="sub_mit">Collegati</button>
                <br />
                <br />
                <br />
                 <label id="mex" style="display: none;">ffff</label>
            </fieldset>
        
    </form>
    </body>
    <script>
    
    $(document).ready(function(){
        $('#sub_mit').click(function(){
              $.ajax({ 
                url:"Login.php", 
                type: "POST", 
                data: {'username': $('#user_name').val(), 'password': $('#pass_word').val()}, 
                //data: { username: "nico", password: "1"}, 
                success:function(result){ 
                    //alert(result)
                     if (result=='err') {
                        alert('errore')
                     }
                     else
                     {
                        alert('ok')
                     }
                } //fine success
            }); // fine .ajax
        }); // fine .click
    }); //fine document ready
    
    </script>
    
    </html>

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A) Se non funziona neanche il semplice form va ricercato il problema nella pagina/documento, per eseguire il debug io procederei step by step togli tutto (pagina bianca), lasci solo il form, poi aggiungi libreria jquery, poi aggiungi la chiamata Ajax, poi aggiungi il dom (tag html), etc... finche non smette di funzionare cosi circoscrivi il problema.
    B) Se provi in locale, prova a pubblicare su di un server free (tipo altervista.org) spesso si risolve
    C) Se puoi installare firebug sul browser è meglio cosi monitorizzi i processi dalla console (il plugin c'è per firefox, chrome, safari)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it L'avatar di Azucchi
    Registrato dal
    Jul 2014
    Messaggi
    123
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    C) Se puoi installare firebug sul browser è meglio cosi monitorizzi i processi dalla console (il plugin c'è per firefox, chrome, safari)
    Meglio installarlo su Firefox. Ho visto che quello di chrome è in versione lite.

  10. #10
    Un'analisi pezzo per pezzo avevo già provato a farla prima di postare sul forum, il form funziona, se nella su action metto Login.php tutto va bene. Anche il codice Java, nonostante magari qualche punto e virgola mancante sembrava funzionare. Infatti recupera in modo corretto i valori(ho provato a visualizzali con un alert), il problema è che poi sembra non passarli correttamente, visto che se li passo da codice e non popolo le input funziona tutto. Come già detto è strano che se gli passo le variabili da codice e poi però valorizzo anche le input non funzioni..

    Non so bene come si usi firebug ma proverò, e proverò anche a copiare tutto su altervista.

    Grazie comunque a tutti per i consigli. Se risolvo l'arcano (ho forti dubbi) postero la soluzione.

    Grazie ancora!!

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