Visualizzazione dei risultati da 1 a 10 su 28

Hybrid View

  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sai già che non è argomento PHP, perché non chiedi direttamente in una delle altre 2 sezioni candidate?
    Così hai sbagliato sicuramente, nell'altro modo avresti avuto il 50% di beccare la sezione giusta.

    Ti sposto in Javascript.

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592

    Esempio di spostamento su tabella campi in righe e colonne fatto con jscript

    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Sai già che non è argomento PHP, perché non chiedi direttamente in una delle altre 2 sezioni candidate?
    Così hai sbagliato sicuramente, nell'altro modo avresti avuto il 50% di beccare la sezione giusta.

    Ti sposto in Javascript.
    Ciao, ti posto un esempio di codice preso dai miei script
    considera che io svolgo con ASP le righe e le colonne e in questo caso invece te le ho scritte manualmente per farti vedere il modo che uso io...
    <html>
    <head>
    <title>TEST SPOSTAMENTO CURSORI SU CELLE DI TABELLA</title>
    <script type="text/javascript" language="javascript" >
    var R = 1, C = 1;
    function SpostaUpDown(R, C, e) {
    var code = e.keyCode ? e.keyCode : e.charCode
    // alert("R="+R+" C="+C);
    if (code == 38) { SetFocus(R - 1, C); }
    // alert("Up");
    if (code == 40) { SetFocus(R + 1, C); }
    // alert("DN");
    if (code == 13) {
    // alert(code);
    Invio(R, C, e);
    }
    // invio
    }

    function SetFocus(R, C){
    if (R==0) {R=1};
    if (R>3) {R=3};
    //if (C==0 || C==7) {C=1};
    if (C>6) {C=6};
    // SalvaCursore( R, C);
    document.getElementById("R"+R+"C"+C).focus();
    document.getElementById("R"+R+"C"+C).select();
    }

    function Invio(R, C, e) {
    var code = e.keyCode ? e.keyCode : e.charCode;
    if (code == 13) {
    //alert(code);
    ElaboraDatiForm(R, C);
    return true; ;
    }
    else {
    return false;
    }
    }

    function ElaboraDatiForm(R, C) {
    alert("elaboro cella a RIGA=" + R + ", COL.=" + C);
    }
    function NumbersOnly(myfield, e, dec) {
    var key;
    var keychar;
    if (window.event)
    key = window.event.keyCode;
    else if (e)
    key = e.which;
    else
    return true;
    keychar = String.fromCharCode(key);
    // control keys
    if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27))
    return true;
    // numbers
    else if ((("0123456789,").indexOf(keychar) > -1))
    return true;
    // decimal point jump
    else if (dec && (keychar == ".")) {
    myfield.form.elements[dec].focus();
    return true;
    } else
    return false;
    }

    function LettersOnly(myfield, e, dec) {
    var key;
    var keychar;

    if (window.event)
    key = window.event.keyCode;
    else if (e)
    key = e.which;
    else
    return true;
    keychar = String.fromCharCode(key);

    // control keys
    if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27))
    return true;

    // numbers
    else if ((("abcdefghilmnopqrstuvzwxyjkABCDEFGHILMNOPQRSTUV ZWXYK .,àèìòù&0123456789").indexOf(keychar) > -1))
    return true;
    else
    return false;
    }

    </script>


    <style type="text/css">
    <!--
    input.objAttivo:hover {
    background-color: #3399FF;
    color:#000000;
    }
    input.objAttivo:active {
    background-color:#FFFFFF;
    }
    input.objAttivo1 {
    background-color: #666666;
    color:#FFFFFF;
    text-align:center;
    }
    -->
    </style></head>
    </head>
    <body>


    <table>
    <tr>
    <td><input class="objAttivo" type=text id="R1C1" name="R1C1" onkeypress="return NumbersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(1 , 1, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R1C2" name="R1C2" onkeypress="return NumbersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(1 , 2, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R1C3" name="R1C3" onkeypress="return NumbersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(1 , 3, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R1C4" name="R1C4" onkeypress="return NumbersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(1 , 4, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R1C5" name="R1C5" onkeypress="return NumbersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(1 , 5, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R1C6" name="R1C6" onkeypress="return NumbersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(1 , 6, event)"onFocus="this.style.backgroundColor='#8AF4F 4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    </tr>
    <tr>
    <td><input class="objAttivo" type=text id="R2C1" name="R2C1" onkeypress="return LettersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(2 , 1, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R2C2" name="R2C2" onkeypress="return LettersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(2 , 2, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R2C3" name="R2C3" onkeypress="return LettersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(2 , 3, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R2C4" name="R2C4" onkeypress="return LettersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(2 , 4, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R2C5" name="R2C5" onkeypress="return LettersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(2 , 5, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R2C6" name="R2C6" onkeypress="return LettersOnly(this, event)" value="" size="20" onKeyDown="SpostaUpDown(2 , 6, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    </tr>
    <tr>
    <td><input class="objAttivo" type=text id="R3C1" name="R3C1" value="" size="20" onKeyDown="SpostaUpDown(3 , 1, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R3C2" name="R3C2" value="" size="20" onKeyDown="SpostaUpDown(3 , 2, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R3C3" name="R3C3" value="" size="20" onKeyDown="SpostaUpDown(3 , 3, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R3C4" name="R3C4" value="" size="20" onKeyDown="SpostaUpDown(3 , 4, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R3C5" name="R3C5" value="" size="20" onKeyDown="SpostaUpDown(3 , 5, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    <td><input class="objAttivo" type=text id="R3C6" name="R3C6" value="" size="20" onKeyDown="SpostaUpDown(3 , 6, event)" onFocus="this.style.backgroundColor='#8AF4F4'" onBlur="this.style.backgroundColor='#ffffff'" /></td>
    </tr>
    </table>
    </body>

    </html>
    copia in un file html e provalo...

    ciao
    Vic53

  3. #3
    Quote Originariamente inviata da vic53 Visualizza il messaggio
    Ciao, ti posto un esempio di codice preso dai miei script
    considera che io svolgo con ASP le righe e le colonne e in questo caso invece te le ho scritte manualmente per farti vedere il modo che uso io...

    copia in un file html e provalo...

    ciao
    Ciao ti ringrazio tantissimo

    l'esempio funziona ed una buona base da adattare al mio problema,

    purtroppo nel presentarlo (e nella sezione sbagliata per giunta...) ho dimenticato di specificare alcuni dettagli importanti.


    • La tabella è dinamica (9 righe per un numero di colonne che varia da 6 a 24).
    • Lo spostamento deve avvenire solo tra caselle libere, una volta digitata la lettera al ripresentarsi dello schema la lettera viene evidenziata (stampata) nella cella ma non come campo di input.


    In ordine potrei ma la vedo dura:

    1) capire bene l'esempio

    ho provato al volo a gestire lo spostamento orizzontale (inserendo i codici 37 e 39 nella funzione SpostaUpDown) ma chiaramente non basta, farò altri tentativi.

    2) scrivere dinamicamente la sezione javascript da php... che conosce la dislocazione delle caselle libere.

    Nel mio caso sarebbe una vera chicca...

  4. #4
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592

    ...varie

    Quote Originariamente inviata da vitren54 Visualizza il messaggio
    Ciao ti ringrazio tantissimo

    l'esempio funziona ed una buona base da adattare al mio problema,

    purtroppo nel presentarlo (e nella sezione sbagliata per giunta...) ho dimenticato di specificare alcuni dettagli importanti.


    • La tabella è dinamica (9 righe per un numero di colonne che varia da 6 a 24).
    • Lo spostamento deve avvenire solo tra caselle libere, una volta digitata la lettera al ripresentarsi dello schema la lettera viene evidenziata (stampata) nella cella ma non come campo di input.


    In ordine potrei ma la vedo dura:

    1) capire bene l'esempio

    ho provato al volo a gestire lo spostamento orizzontale (inserendo i codici 37 e 39 nella funzione SpostaUpDown) ma chiaramente non basta, farò altri tentativi.

    2) scrivere dinamicamente la sezione javascript da php... che conosce la dislocazione delle caselle libere.

    Nel mio caso sarebbe una vera chicca...
    ciao

    si puo fare ma bisogna scrivere jscript dinamico...
    io lo potrei fare ma sono piu ferrato in ASP dove sviluppo applicazioni per clienti e amici in ASP vbscript e jscript + jquery...
    pero' anche con javascript puoi usare la creazione di html dinamico lato client....
    se mi dici le specifiche e ho tempo provo a sviluppare un modello come dici.
    per bypassare le caselle occupate ti suggerisco di usare la function onFocus e testare se diversa da blank per saltare alla cella successiva... (C=C+1 con test fine riga con R=R+1) questo porterebbe il cursore a spostarsi sulle celle libere come ti serve ...pero bisogna studiarci su e fare le prove.
    bye
    Ultima modifica di vic53; 22-12-2015 a 14:17
    Vic53

  5. #5
    Quote Originariamente inviata da vic53 Visualizza il messaggio
    ciao

    si puo fare ma bisogna scrivere jscript dinamico...
    io lo potrei fare ma sono piu ferrato in ASP dove sviluppo applicazioni per clienti e amici in ASP vbscript e jscript + jquery...
    pero' anche con javascript puoi usare la creazione di html dinamico lato client....
    se mi dici le specifiche e ho tempo provo a sviluppare un modello come dici.
    per bypassare le caselle occupate ti suggerisco di usare la function onFocus e testare se diversa da blank per saltare alla cella successiva... (C=C+1 con test fine riga con R=R+1) questo porterebbe il cursore a spostarsi sulle celle libere come ti serve ...pero bisogna studiarci su e fare le prove.
    bye
    Ciao

    la tabella viene generata in php e quindi vedrei bene (ma posso sbagliarmi) l'integrazione con javascript, uno pensa a crearla con i dati opportuni e l'altro a gestire gli spostamenti.

    Nel loop php nidificato righe/colonne attribuirei ad ogni cella una classe, l'id, nome ed evento scrivendo da parte una sezione javascript che operi le opportune azioni.

    L'aspetto degli spostamenti che non crea problemi ad es. sui tablet è stato sottovalutato per i pc e risulta essere scomodo e fastidioso.

    dell'applicazione ne avevo parlato e operativamente, in un mese, molte cose sono cambiate:

    http://forum.html.it/forum/showthread.php?threadid=2932440




  6. #6
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    i dati di partenza per fare le prove sono numero di righe e numero di colonne; io darei a queste celle l'id="R+riga+C+colonna" come ho fatto nell'esempio questo per poter usare jscript dinamicamente.
    poi se vuoi spostarti con le frecce orizzontali hai il problema che quando sei sul campo in edit, la freccia si sposta sul campo.. e solo alla fine del campo si deve spostare nella cella successiva libera... e' chiaro?...Questo vale anche per lo spostamento a sinistra fino a inizio campo. Poi il load delle celle lo fai con PHP tramite value="<?...>"
    Ho capito bene?
    ciao
    Vic53

  7. #7
    Quote Originariamente inviata da vic53 Visualizza il messaggio
    i dati di partenza per fare le prove sono numero di righe e numero di colonne; io darei a queste celle l'id="R+riga+C+colonna" come ho fatto nell'esempio questo per poter usare jscript dinamicamente.
    poi se vuoi spostarti con le frecce orizzontali hai il problema che quando sei sul campo in edit, la freccia si sposta sul campo.. e solo alla fine del campo si deve spostare nella cella successiva libera... e' chiaro?...Questo vale anche per lo spostamento a sinistra fino a inizio campo. Poi il load delle celle lo fai con PHP tramite value="<?...>"
    Ho capito bene?
    ciao
    OK per l'id="R+riga+C+colonna"

    qualche dubbio sul campo di edit...
    il campo di edit è lungo 1 e pensavo ad un comportamento simile al TAB che salta da una cella all'altra indipendentemente dal fatto che sia piena o vuota.

    Si il load delle celle lo faccio con PHP che inserisce un campo di input se la cella è vuota o visualizza il valore e quindi la cella deve essere scavalcata nello spostamento del cursore.

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.