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

    Convalida prima dell'inoltro

    Ciao a tutti! Oggi ho iniziato a studiare una nuova parte del mio libro (che inizio ad odiare...) e ho trovato una difficoltà nel capire il significato di una funzione.
    Sapreste spieagarmi di cosa si tratta?

    (Qui c'è scritto che è Javascript... ma sembra PHP )

    Codice PHP:
    <SCRIPT>
    function 
    esiste(valore) {
    var 
    car=0;

    if (
    valore) {
    var 
    i=0;
    while (
    i<valore.length) {           // qui non riesco a capire cosa significa...
    if (valore.charAt(i)!=" ") {        // qui non riesco a capire cosa significa... 
    car=1;                                  // qui non riesco a capire perché fa cambiare il valore!
    i=i+1;                                 // e quinon riesco a capire perché incrementa "i".
    }
    }
    }

    if (!
    valore) {
    return 
    0;
    }

    else return 
    1;

    }
    </SCRIPT> 
    Potreste darmi una mano? Grazie mille in anticipo!

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Si direbbe un esercizio nel quale trovare gli errori concettuali... come quello di avere un ciclo nel quale la condizione di uscita potrebbe non verificarsi mai o, come hai notato, variabili inutili...

    Ma quali sono le premesse? lo scopo? con piccole correzioni lo script potrebbe avere un senso, ma magari non e' lo stesso che intendeva il suo creatore
    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

  3. #3
    Originariamente inviato da br1
    Si direbbe un esercizio nel quale trovare gli errori concettuali... come quello di avere un ciclo nel quale la condizione di uscita potrebbe non verificarsi mai o, come hai notato, variabili inutili...

    Ma quali sono le premesse? lo scopo? con piccole correzioni lo script potrebbe avere un senso, ma magari non e' lo stesso che intendeva il suo creatore
    A questo punto mi conviene inserire l'intero esempio del libro!

    "Per esempio, se un utente si dichiara in campo come maggiorenne e nel campo età scrive un valore minore di 18, chiaramente una delle due immissioni non è corretta. Nell'esempio che segue, la convalida avviene quando l'utente preme il pulsante di submit, grazie all'attributo "onsubmit" dell'elemento form."
    Codice PHP:
    <html>
    <
    head>
    <
    title>convalida_prima.html</title>
    <
    script>
    function 
    esiste(valore)
    {
    var 
    car=0;
    if (
    valore)

    {
    var 
    i=0;
    while (
    i<valore.length)
    {
    if (
    valore.charAt(i)!=" ")
    car=1;
    i+1;
    }
    }
    if (!
    valore)
    return 
    0;
    else return;
    }

    function 
    controlla_form()
    {
    if ((!
    esiste(modulo.maggiorenne.value))||(!esiste(modulo.eta.value)))
    alert ("Errore!");

    else
    {
    if (((
    modulo.maggiorenne.value=="Y") && (modulo.eta.value 18)) || ((modulo.maggiorenne.value =="N") && (modulo.eta.value >=18)))
    {
    alert ("Errore!");
    retrurn false;
    }
    else
    return 
    true;
    }
    }
    </script>
    </head>
    <body>
    <form name="modulo" onsubmit="controlla_form()">

    Sei maggiorenne? (Y or N)
    <input type="text" name="maggiorenne" size="1" maxlength="1">

    Età:
    <input type="text" name="eta" size="2" maxlength="2">

    <input type="submit" value="invia">
    </form>
    </body>
    </html> 
    L'ho copiato uguale a come era scritto nel libro.
    L'unica cosa è che non riesco a capire cosa significano quei passi da me contrassegnati nel post precedente...

    Grazie mille per le evenutali risposte!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    penso che la funzione serva a controllare se i due campi esistono e sono valorizzati almeno con un carattere qualunque, basta almeno che ce ne sia uno... ma è alquanto contorta... alcune cose non hanno alcun senso, nel ciclo per esempio va a settare una variabile che non viene mai usata ecc... sei sicuro di aver copiato tutto? se si non so che dirti...

    p.s. se fai una prova togliendo la parte che hai contrassegnato vedrai che il risultato della funzione non cambia...

  5. #5
    Originariamente inviato da Vindav
    penso che la funzione serva a controllare se i due campi esistono e sono valorizzati almeno con un carattere qualunque, basta almeno che ce ne sia uno... ma è alquanto contorta... alcune cose non hanno alcun senso, nel ciclo per esempio va a settare una variabile che non viene mai usata ecc... sei sicuro di aver copiato tutto? se si non so che dirti...

    p.s. se fai una prova togliendo la parte che hai contrassegnato vedrai che il risultato della funzione non cambia...
    Esatto! E' la stessa cosa che ho pensato io! Ma essendo un principiante avevo paura di fare qualche pasticcio... Adesso ci provo, grazie!

    P.S.:Sono sicuro di aver copiato e riletto tutto almeno 10 volte... quindi sì, è proprio un libro che non valeva la pena di comprare...

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da Furaen
    P.S.:Sono sicuro di aver copiato e riletto tutto almeno 10 volte... quindi sì, è proprio un libro che non valeva la pena di comprare...
    Il primo script non e' uguale a quello postato in precedenza... ora ha un senso ... modificando l'ultima riga in

    else return car;



    Per il resto:

    while (condizione) // esegue il ciclo finche' la condizione e' valida

    if (valore.charAt(i)!=" ") // Se il carattere i-esimo nella stringa valore non e' uno spazio.... (pero' mi pare ti manchino i fondamentali )

    car=1; // vedi l'annotazione piu' sopra

    i=i+1; // l'indice occorrera' incrementarlo da qualche parte

    Nella seconda funzione c'e' qualche imprecisione... ma per scopi puramente didattici va ancora abbastanza bene (ma son certo che non funzioni )
    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

  7. #7
    Originariamente inviato da br1
    Il primo script non e' uguale a quello postato in precedenza... ora ha un senso ... modificando l'ultima riga in

    else return car;



    Per il resto:

    while (condizione) // esegue il ciclo finche' la condizione e' valida

    if (valore.charAt(i)!=" ") // Se il carattere i-esimo nella stringa valore non e' uno spazio.... (pero' mi pare ti manchino i fondamentali )

    car=1; // vedi l'annotazione piu' sopra

    i=i+1; // l'indice occorrera' incrementarlo da qualche parte

    Nella seconda funzione c'e' qualche imprecisione... ma per scopi puramente didattici va ancora abbastanza bene (ma son certo che non funzioni )
    Ma l'ho preso dal libro!
    Mica l'ho fatta io! Io sto studiando PHP, non Javascript... ma dato che mi ha fatto un esempio di client-side, volevo capire come funzionava. Capito?

    Grazie mille comunque!

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da Furaen
    Ma l'ho preso dal libro!
    Mica l'ho fatta io! Io sto studiando PHP, non Javascript... ma dato che mi ha fatto un esempio di client-side, volevo capire come funzionava. Capito?

    Grazie mille comunque!
    Dov'e' scritto che le cose prese dai libri sono sempre esatte?
    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

  9. #9
    Originariamente inviato da br1
    Dov'e' scritto che le cose prese dai libri sono sempre esatte?
    Anche questo è vero
    Grazie mille a tutti quelli che mi hanno risposto

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.