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

    Creare una funzione "aggiungi" per bottone

    Ciao a tutti. Vi spiego in parole povere cosa devo fare. Devo creare un sito html che mi crei, dato il nome della tabella, della chiave primaria e i campi della tabella, il codice in sql di una tabella.
    Stavo seguendo questo esempio: https://editor.datatables.net/generator/, però mi sono fermato al bottone "add" ovvero quello che mi aggiunge un altro campo per la tabella. Mi hanno detto che devo usare una funzione in javascript ma io so 0 del javascript. Come faccio a fare una funzione che, se cliccato il bottone aggiungi, mi aggiunga un campo per la tabella?
    Qui c'è quello che ho fatto:
    <DOCTYPE html><head>
    <body>
    <script>


    </script>
    <form name="sql generator" method="post">
    <table width="300px">
    </tr>
    <tr>
    <td>
    <label for="nometabella">Nome tabella:</label>
    </td>
    <td>
    <input type="text" name="nometabella">
    </td>
    </tr>
    <tr>
    <td>
    <label for="chiaveprimaria">Chiave primaria:</label>
    </td>
    <td>
    <input type="text" name="chiaveprimaria" value="id">
    </td>
    </tr>
    <tr>
    <td>
    <button name="aggiungi" onclick="aggiungi()">aggiungi</button>
    </td>
    </tr>

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    sposto in JS
    fai un ricerca in questa sezione: l'argomento è già stato trattato. vedi se ne frattempo trovi qualcosa di utile

    ricorda di usare sempre il tag CODE per postare codice sul from, grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao,
    dato l'id di un elemento, in questo caso il bottone, aggiungi un evento "click" che lancia la funzione miaFunzione(), che in questo caso effettua un allert, ma all'interno della funzione puoi mettere qualsiasi funzionalità.
    Il codice javascript è stato racchiuso in un: window.onload=function(){} che non è che un altro modo per registrare un evento, in questo caso l'azione si effettua al caricamento della pagina. Se voglio registrare un evento click su un elemento specifico della pagina, onde evitare di mettere il codice alla fine della pagina stessa, devo attendere che la pagina sia caricata.

    Roberto

    codice:
    <DOCTYPE html><head>
    <body>
    <script>
    window.onload=function(){
      document.getElementById("aggiungi").addEventListener("click",miaFunzione);
      
      function miaFunzione(){
        alert("Hai premuto il tasto con id:"+this.id);
      }
    }
    
    </script>
    <form name="sql generator" method="post">
    <table width="300px">
    </tr>
    <tr>
    <td>
    <label for="nometabella">Nome tabella:</label>
    </td>
    <td>
    <input type="text" name="nometabella">
    </td>
    </tr>
    <tr>
    <td>
    <label for="chiaveprimaria">Chiave primaria:</label>
    </td>
    <td>
    <input type="text" name="chiaveprimaria" value="id">
    </td>
    </tr>
    <tr>
    <td>
    <button name="aggiungi" id="aggiungi">aggiungi</button>
    </td>
    </tr>
    Ultima modifica di robynosse; 24-02-2018 a 23:32

  4. #4
    ok però sono ancora in alto mare. Ho trovato un codice in una vostra discussione che ho provato a seguire ma a me non mostra nulla quando clicco il bottone. il codice aggiornato è:
    <!DOCTYPE html>
    <head>
    <body>
    <script>
    var numero=1
    function aggiungi(){
    // crea elementi
    var oText=document.createTextNode("campo "+num);
    var oTr=document.createElement("TR");
    var oTd1=document.createElement("TD");
    var oTd2=document.createElement("TD");
    var oField=document.createElement("INPUT");


    // setta attributi
    oField.setAttribute("type","text");
    oField.setAttribute("name","testo"+num);


    // appendi al relativo padre
    oTd1.appendChild(oField);
    oTd2.appendChild(oText);
    oTr.appendChild(oTd1);
    oTr.appendChild(oTd2);
    document.getElementById('tabella').getElementsByTa gName('TBODY')[0].appendChild(oTr);


    // incrementa variabile globale
    num++
    }




    function rimuovi(){
    if(document.removeChild && document.getElementById && document.getElementsByTagName) {
    // se non e' la prima riga
    if(num>1){
    // riferimento al tbody
    var tb=document.getElementById('tabella').getElementsB yTagName('TBODY')[0];
    // riferimento all' ultimo TR
    var lastTr=tb.getElementsByTagName('TR')[(tb.getElementsByTagName('TR').length)-1]
    // rimuovi
    tb.removeChild(lastTr);
    // decrementa variabile globale
    num--
    }
    }
    }
    </script>
    <form name="sql generator" method="post">
    <table width="300 px" name="tabella">
    </tr>
    <tbody>
    <tr>
    <td>
    <label for="nometabella">Nome tabella:</label>
    </td>
    <td>
    <input type="text" name="nometabella">
    </td>
    </tr>
    <tr>
    <td>
    <label for="chiaveprimaria">Chiave primaria:</label>
    </td>
    <td>
    <input type="text" name="chiaveprimaria" value="id">
    </td>
    </tr>
    <tr>
    <td>
    <button name="aggiungi" onclick="aggiungi()">aggiungi</button>
    </td>
    <td>
    <button name="rimuovi" onclick="rimuovi">rimuovi</button>
    </td>
    </tr>
    <tr>
    <td>
    <label for="campo1">campo 1:</label>
    </td>
    <td>
    <input type="text" name="campo1">
    </td>
    <td>
    <select>
    <option value="testo">testo</option>
    <option value="numero">numero</option>
    </select>
    </td>
    </tr>
    </tbody>
    </table>
    </form>


    </body>
    </head>

  5. #5
    ok però sono ancora in alto mare. ho provato a seguire un esempio trovato su google ma niente. il codice aggiornato è:
    <!DOCTYPE html>
    <head>
    <body>
    <script>
    var numero=1
    function aggiungi(){
    // crea elementi
    var oText=document.createTextNode("campo "+num);
    var oTr=document.createElement("TR");
    var oTd1=document.createElement("TD");
    var oTd2=document.createElement("TD");
    var oField=document.createElement("INPUT");


    // setta attributi
    oField.setAttribute("type","text");
    oField.setAttribute("name","testo"+num);


    // appendi al relativo padre
    oTd1.appendChild(oField);
    oTd2.appendChild(oText);
    oTr.appendChild(oTd1);
    oTr.appendChild(oTd2);
    document.getElementById('tabella').getElementsByTa gName('TBODY')[0].appendChild(oTr);


    // incrementa variabile globale
    num++
    }




    function rimuovi(){
    if(document.removeChild && document.getElementById && document.getElementsByTagName) {
    // se non e' la prima riga
    if(num>1){
    // riferimento al tbody
    var tb=document.getElementById('tabella').getElementsB yTagName('TBODY')[0];
    // riferimento all' ultimo TR
    var lastTr=tb.getElementsByTagName('TR')[(tb.getElementsByTagName('TR').length)-1]
    // rimuovi
    tb.removeChild(lastTr);
    // decrementa variabile globale
    num--
    }
    }
    }
    </script>
    <form name="sql generator" method="post">
    <table width="300 px" name="tabella">
    </tr>
    <tbody>
    <tr>
    <td>
    <label for="nometabella">Nome tabella:</label>
    </td>
    <td>
    <input type="text" name="nometabella">
    </td>
    </tr>
    <tr>
    <td>
    <label for="chiaveprimaria">Chiave primaria:</label>
    </td>
    <td>
    <input type="text" name="chiaveprimaria" value="id">
    </td>
    </tr>
    <tr>
    <td>
    <button name="aggiungi" onclick="aggiungi()">aggiungi</button>
    </td>
    <td>
    <button name="rimuovi" onclick="rimuovi">rimuovi</button>
    </td>
    </tr>
    <tr>
    <td>
    <label for="campo1">campo 1:</label>
    </td>
    <td>
    <input type="text" name="campo1">
    </td>
    <td>
    <select>
    <option value="testo">testo</option>
    <option value="numero">numero</option>
    </select>
    </td>
    </tr>
    </tbody>
    </table>
    </form>


    </body>
    </head>

  6. #6
    ho inviato lo stesso messaggio due volte scusatemi ho sbagliato

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,505
    Quote Originariamente inviata da DXgeneration01 Visualizza il messaggio
    ho inviato lo stesso messaggio due volte scusatemi ho sbagliato
    hai sbagliato anche a non leggere il regolamento. in particolare la sezione che riguarda il tag code
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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