"Variabili" HTML

Discussione in 'Web Development' iniziata da mikla90, 12 Ottobre 2017.

  1. mikla90

    • Utente L33T

    Dal:
    2 Dicembre 2015
    Messaggi:
    52
    Mi Piace Ricevuti:
    0
    Specifiche Hardware
    Ciao a tutti.
    Mi trovo in questa situazione: devo creare una semplice pagina HTML con un elenco a tendina in cui scegliere un modello preciso. Da lì alla pressione del pulsante "Start" deve partire il test del modello specificato nel menù a tendina sopra.
    Ora, io di HTML non ne capisco quasi nulla. Tutto quello che sono riuscito a fare è frutto di pezzi di codice reperiti ed editati da me, quindi vi chiedo di andarci piano e semplice con me.

    Ho provato come nell'esempio, ma non funziona. Come devo modificare il pezzo qui sotto? Grazie!

    Codice (Text):


    <select name="Model_selection">
       
        <option value="Model_1">Model_1</option>
        <option value="Model_2">Model_2</option>
        <option value="Model_3">Model_3</option>

    </select>
     
      <input type="submit" value="Start">
      <input type="hidden" name="Model_Selection" size="20px" value="1">
     

     
     
  2. cdtux

    • Utente L33T

    Dal:
    10 Gennaio 2015
    Messaggi:
    1.533
    Mi Piace Ricevuti:
    638
    Specifiche Hardware
    L'html è un linguaggio di markup e non un linguaggio di programmazione.
    Se devi inserire delle azioni/interazioni devi utilizzare dei veri e propri linguaggi di programmazione* php o javascript.

    Spiega meglio quello che un eventuale script deve fare al click del pulsante submit.

    * per gli utenti più pignoli tecnicamente questi sono linguaggi di scripting..
     
  3. mikla90

    • PC Gamer

    Dal:
    2 Dicembre 2015
    Messaggi:
    52
    Mi Piace Ricevuti:
    0
    Specifiche Hardware
    Mi sono spiegato male io, purtroppo. La pagina HTML comanda un Siemens S7-1200. Non mi serve che venga settata una variabile vera e propria. Di fatto, mi basta che il nome del modello selezionato venga copiato, anche come testo semplice, nella parte "hidden" del pulsante start.
     
  4. Mursey

    Specifiche Hardware
    Codice (HTML5):

    <select name="Model_list">
        <option value="Model_1">Model_1</option>
        <option value="Model_2">Model_2</option>
        <option value="Model_3">Model_3</option>
    </select>
    <input type="submit" value="Start" onclick="setSelected()">
    <input type="hidden" name="Model_selection" size="20px" value="">

    <script>
    function setSelected() {
        var e = document.getElementsByName("Model_list")[0];
        var value = e.options[e.selectedIndex].value;
        document.getElementsByName("Model_selection")[0].value = value;
    }
    </script>
     
     
  5. mikla90

    • PC Gamer

    Dal:
    2 Dicembre 2015
    Messaggi:
    52
    Mi Piace Ricevuti:
    0
    Specifiche Hardware
    Di nuovo, mi scuso ma mi dimentico pezzi per strada.
    La funzione di Mursey fa esattamente quello, ora però anche con un altro tasto devo poterla mettere ad 1.
    In pratica, scegliendo il modello dal menù a tendina devo poter mettere il Model_<n> ad 1. Posso farlo anche con due tasti, ad esempio Load e Start, dove Load potrebbe essere una cosa simile alla funzione qui sopra e Start mette poi ad uno il Model_<n>.

    Idee? O è impossibile con HTML?
     
  6. Mursey

    Specifiche Hardware
    Tutto è possibile con Javascript :figo:
    però bisogna capire bene cosa vuoi fare...

    Intendi che invece di mettere il valore Model_2 debba finirci 2 ?
    Se è così basta che cambi i value dei singoli <option>

    Se invece devi mettere 1 agli elementi della lista... perchè ?
     
  7. mikla90

    • PC Gamer

    Dal:
    2 Dicembre 2015
    Messaggi:
    52
    Mi Piace Ricevuti:
    0
    Specifiche Hardware
    No, non intendo quello.
    In pratica... Il modello selezionato deve poi essere messo a "1" in modo da far partire il ciclo di test. Di fatto, quel "1" è lo una variabile booleana nel PLC. Quindi, da il consenso a far partire il test.

    Nella vecchia versione del codice, che funzionava, era così

    Codice (Text):


    <tr>
    <td>Model_1</td>
    <form method="post"  action="">
    <td><input type="submit" value="GO">     <!-- to start the test -->
    <input type="hidden" name='Model_1' size="20px" value="1"></td>
    </form>
    <form method="post"  action="">
    <td><input type="submit" value="Reset">   <!-- to stop the test -->
    <input type="hidden" name='Model_1' size="20px" value="0"></td>
    </form>
    </tr>

     
    Spero di aver reso l'idea! A mio avviso, il problema è abbastanza semplice, è spiegarlo che è difficile... Ribadisco che anche questo codice è per lo più preso da internet e riadattato per cui mi scuso se non è perfetto.
     
  8. Mursey

    Specifiche Hardware
    Una cosa così ?
    Codice (HTML5):

    <select name="Model_list">
        <option value="Model_1">Model_1</option>
        <option value="Model_2">Model_2</option>
        <option value="Model_3">Model_3</option>
    </select>
    <input type="submit" value="Start" onclick="start()">
    <input type="submit" value="Reset" onclick="stop()">
    <input id="status" type="hidden" name="" size="20px" value="">

    <script>
    function start() {
        var e = document.getElementsByName("Model_list")[0];
        var value = e.options[e.selectedIndex].value;
     
        document.getElementById("status").name = value;
        document.getElementById("status").value = "1";
    }
    function stop() {
        document.getElementById("status").value = "0";
    }
    </script>
     
     
  9. mikla90

    • PC Gamer

    Dal:
    2 Dicembre 2015
    Messaggi:
    52
    Mi Piace Ricevuti:
    0
    Specifiche Hardware
    Purtroppo, no. Non funziona, nemmeno copiandolo pari pari. Ti faccio un paio di domande:
    - nella riga <input id="status" type="hidden" name="" size="20px" value=""> se io mettessi il valore a 1 sempre ( value="1" ) come dovrei fare per far cambiare solo il contenuto di name? Però non con le virgolette, bensì come nel mio esempio, cioè name='Model__1'

    - posso semplicemente eliminare la riga di Stop e la relativa funzione? Le gestirei in un altro modo con un pulsante di Reset che va a modificare un'altra variabile.

    Edit: che differenza c'è tra name='Model_1' e name="Model_1"? Lo chiedo perchè per gestire le variabili devo aggiungere una riga di commento che fa così:

    Codice (Text):

    <!-- AWP_In_Variable Name='Model_1' -->
     
    Però viene espressamente indicato con l'apostrofo, non le virgolette. Non so se cambia qualcosa.
     
    #9 mikla90, 12 Ottobre 2017
    Ultima modifica: 12 Ottobre 2017
  10. Mursey

    Specifiche Hardware
    Strano perchè io lo ho testato e funziona:
    la mia idea era settare name e value nel caso dello start e value a 0 nel caso di stop.

    Se hai vogli di dirmi che errore ti dà,
    se poi intendi che non funziona perchè non fa il vero start sul PLC allora è un'altro discorso...

    Comunque
    document.getElementById('status').name = value;

    Si, basta che cambi anche il suo uso nel onclick

    In Javascript puoi usare " o ', al massimo devi stare attento al contesto dove le usi ma in generale non dovresti avere problemi anche a mischiarle.
     
  11. mikla90

    • PC Gamer

    Dal:
    2 Dicembre 2015
    Messaggi:
    52
    Mi Piace Ricevuti:
    0
    Specifiche Hardware
    Aspetta, adesso forse dirò una cavolata. Ma gli script sono in javascript? Perchè il plc non li supporta, solo semplice HTML. Lo so, è una domanda stupida, ma sono ignorante davvero in materia di HTML.

    Poi, come faccio a vedere che errore mi da? La pagina la compila normalmente e la apre, poi per editare il codice uso Notepad++. Non ho un debugger.

    Per la questione dello stop, semplicemente metterei questo

    Codice (Text):

    <input type="submit" value="Reset">   <!-- to stop the test -->
    <input type="hidden" name='Reset_All' size="20px" value="1">
     
    Dove Reset_All semplicemente riporta a zero tutte le variabili nel PLC e fine.
     
  12. Mursey

    Specifiche Hardware
    Gli script sono in Javascript ma modificano lo HTML e quindi se il PLC lo usa dovrebbe andare.
    L'errore (se c'è) lo vedi nel browser premendo F12 e andando nella console.

    Forse non va perchè c'è qualche regola da rispettare nel HTML altrimenti il PLC non capisce... ?
     
  13. mikla90

    • PC Gamer

    Dal:
    2 Dicembre 2015
    Messaggi:
    52
    Mi Piace Ricevuti:
    0
    Specifiche Hardware
    Che io sappia, niente di particolare. Solo aggiungere le variabili all'inizio nei commenti.
    Domani riprovo e vi aggiorno! Più che altro, la pagina viene generata dal PLC partendo dal file html. Non credo capisca gli script.
     
  14. Mursey

    Specifiche Hardware
    Allora proviamo a prendere una strada diversa...

    Prima però ti chiedo:
    Questo
    Codice (HTML5):

    <input type="submit" value="Start">
    <input type="hidden" name="Model_1" size="20px" value="1">
     
    funziona e l'unico cambiamento è rendere il name variabile ma senza usare Javascript ?
     
  15. mikla90

    • PC Gamer

    Dal:
    2 Dicembre 2015
    Messaggi:
    52
    Mi Piace Ricevuti:
    0
    Specifiche Hardware
    Sì, quello funziona. Ne sono sicuro, lo ho già usato!
     

Condividi questa Pagina