Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965

    [Ajax] Piccola e semplicissima prova

    Ho un problema, sto facendo una prova, ma non funge una mazza

    index.html
    codice:
    <html>
    <head>
    
            <style type="text/css">
                    input.stato{
                            display:none;
                    }
             </style>
    
            <script type="text/javascript">
                    function createXmlRequest(){
                            // ...
                            return new XMLHttpRequest();
                    }
    
              
                    function takeResponse(){
                            if(req.readyState==200){
                                    alert("c");
                                    var res = req.responseText;
                                    document.getElementById("status").style.display='block';
                                    document.getElementById("user").innerHTML=res;   
                            }
                            else{
                                    return 0; 
                    }
                    
                    function getValue(valore, idobj){
                            if(!req)
                                    var req = createXmlRequest();
    
                            req.open("GET","elab.php?field="+idobj+"&value="+valore, true);
                            req.send(null);
                            req.onreadystatechange = takeResponse;
                    }
            </script>
    
    </head>
    <body>
    
    
    <form action="login.php">
            <input type="text" id="status" class="stato" value="" />
            <label for="uname" id="user">Username</label>
            <input type="text" name="username" id="uname" onblur="getValue(this.value, 'uname');"/>
    
            <label for="pwd" id="pass">Password</label>
            <input type="text" name="password" id="pwd" onblur="getValue(this.value, 'pwd');" />
    
            <input type="submit" name="send" value="Login" id="sub" />
    </form>
    
    
    </body>
    </html>
    elab.php
    Codice PHP:
    <?php
    if(isset($_GET['field']) && isset($_GET['value']) ){
            
    $f $_GET['field'];
            
    $v $_GET['value'];

            if( 
    $f=="uname"){
                    if(
    strlen($v)>20)
                            echo 
    "Troppi caratteri";
                    else if(
    strlen($v)<5)
                            echo 
    "Troppi pochi caratteri";
            }
            else if (
    $f == "pwd"){
                    if(
    strlen($v)>20)
                            echo 
    "Troppi caratteri";
                    else if(
    strlen($v)<5)
                            echo 
    "Troppi pochi caratteri";
            }
    }
    ?>
    Solo che non fa nulla. Come mai? Dove sbaglio?

    p.s.:
    Io javascript non l'ho mai imparato bene... esiste un libro fatto bene (cerco il migliore, poichè ne ho già provati altri ma fatti male)?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    :rollo:

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Presumibilmente e' dovuto alla scarsa (troppa?) fantasia nell'assegnazione dei nomi e degli id agli elementi del form... ma e' un errore nel quale i principianti incorrono spesso.
    Usa qualcosa di diverso da "password", "send", "status"... essendo parole riservate (hanno un significato specifico per il javascript) non possone essere usate altrove.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Ah ma ora che ci rimetto mano noto che anche

    if(req.readyState==200){

    è un simpatico errore

    req.status==200

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Sto usando degli alert() per capire il percorso e il processo

    codice:
                    function takeResponse(){    
                            if(req.status==200){
                                    alert("c");
                                    var res = req.responseText;
                                    document.getElementById("stato").style.display='block';
                                    document.getElementById("stato").value=res;  
                                    alert(res);
                            }
                    }
                    
                    function getValue(valore, idobj){
                            if(req==null)
                                    req = createXmlRequest();
    
                            req.open("GET","elab.php?field="+idobj+"&value="+valore, true);
                            req.send(null);
                            req.onreadystatechange = takeResponse;
                            alert("pre");
                    }
    Gli alert vanno...

    "pre"
    "c"
    ""
    "c"
    "troppi caratteri"
    "c"
    "troppi caratteri"
    "pre"

    Mi viene visualizzato due volte "c", cos'è, ci sono due completamenti?

    Spiegatemi queste incongruenze.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    up

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.