[Javascript] Aggiungere una riga ad una tabella

Lalli

Nuovo Utente
6 Ott 2016
15
0
1
24
Ciao a tutti ragazzi, avevo pensato di aggiungere righe ad un tabella tramite un bottone, e cercando su internet ho trovato questo :
HTML:
<!doctype html>
<head>
</head>
<body>
<script type="text/javascript">
function aggiungiRiga(id_table)
{
    var table = document.getElementById(id_table);
    var tbody = table.getElementsByTagName('tbody')[0];
    var colonne = table.getElementsByTagName('th').length; 
    var tr = document.createElement('tr');
    for(var i= 0; i<colonne; i++)
    {
        var td = document.createElement('td');
        var tx = document.createTextNode(prompt("Inserisci testo per cella "+(i+1),""));
        td.appendChild(tx);
        tr.appendChild(td);
    }
    tbody.appendChild(tr);
}
</script>
</body>
</html>

solo che non mi funziona in questa pagina, credo di sbagliare(sicuramente) qualcosa io nell'inserimento di js nel mio codice php :

PHP:
>
<title>Inserimento</title>
<head>
<title>Inserimento</title>
<style>
table, th, td
{
    border: 1px solid black;
    
}
</style>
</head>
<body>
<script language='javascript' src='Inserisciriga.js'></script>
<h1>Inserimento</h1>

<table id='my_table' class='tabella' style="width:100%">
<thead>
<tr>
    <th>ID</th>
    <th>Filiale</th>
    <th>Ufficio</th>
    <th>Utente</th>
    <th>Tipo</th>
    <th>Marca</th>
    <th>Modello</th>
    <th>Matricola</th>
    <th>Note</th>
    <th>DataDDT</th>
    <th>DDT</th>
    <th>Fornitore</th>
    <th>ACQNOL</th>
    <th>Scadenza</th>
</tr>
</thead>
<tbody>

</tbody>


<a href='Eliminazione.php'><input type="submit" name="Eliminazione" value="Elimina un record nel database" /></a>
<a href='Visualizza.php'><input type="submit" name="Visualizza" value="Ricerca un record nel database" /></a>
<a href='Modifica.php'><input type="submit" name="Modifica" value="Modifica un record nel database" /></a>
<a href='Ricerca.php'><input type="submit" name="Ricerca" value="Ricerca un record nel database" /></a>

<form action="" method="post">


</br>Inserisci una filiale <input type="text" name="Filiale"  /> <br/>
Inserisci l'ufficio della filiale<input type="text" name="Ufficio"  /> <br/>
inserisci l'utente dell'hardware<input type="text" name="Utente" /> <br/>
Inserisci il Tipo dell'hardware<input type="text" name="Tipo" /> <br/>
Inserisci la marca dell'hardware<input type="text" name="Marca" /> <br/>
Inserisci il modello dell'hardware<input type="text" name="Modello"  /> <br/>
Inserisci il numero di serie dell'hardware<input type="text" name="Matricola"  /> <br/>
Note<input type="text" name="Note" /> <br/>
Inserisci la data DDT<input type="text" name="DataDDT" /> <br/>
Inserisci la DDT<input type="text" name="DDT"  /> <br/>
Inserisci il fornitore dell' hardware<input type="text" name="Fornitore"  /> <br/>
acquistato o noleggiato ?<input type="text" name="ACQNOL" /> <br/>
Inserisci la data di scadenza della garanzia<input type="text" name="Scadenza"  /> <br/>

<input type="submit" name="Inserisci" value="Inserisci" />
<input type='button' value='Aggiungiriga' name='Aggiungiriga' onClick="aggiungiRiga('my_table')" />
<?php

try
{
    $user="root";
    $pass="";
    $dbh = new PDO('mysql:host=localhost;dbname=hardwarea', $user, $pass);
    if(isset($_POST['Inserisci']))
    {
        
        $stmt = $dbh->prepare("INSERT INTO gestione (Filiale,Ufficio,Utente,Tipo,Marca,Modello,Matricola,Note,DataDDT,DDT,Fornitore,ACQNOL,Scadenza) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ");

        $stmt->bindParam(1, $Filiale);
        $stmt->bindParam(2, $Ufficio);
        $stmt->bindParam(3, $Utenti);
        $stmt->bindParam(4, $Tipo);
        $stmt->bindParam(5, $Marca);
        $stmt->bindParam(6, $Modello);
        $stmt->bindParam(7, $Matricola);
        $stmt->bindParam(8, $Note);
        $stmt->bindParam(9, $DataDDT);
        $stmt->bindParam(10, $DDT);
        $stmt->bindParam(11, $Fornitore);
        $stmt->bindParam(12, $ACQNOL);
        $stmt->bindParam(13, $Scadenza);
        
        if(isset($_POST['Filiale']))
        {
            $Filiale = $_POST['Filiale'];
        }
        if(isset($_POST['Ufficio']))
        {
            $Ufficio = $_POST['Ufficio'];
        }
        if(isset($_POST['Utenti']))
        {
            $Utenti = $_POST['Utenti'];
        }
        if(isset($_POST['Tipo']))
        {
            $Tipo = $_POST['Tipo'];
        }
        if(isset($_POST['Marca']))
        {
            $Marca = $_POST['Marca'];
        }
        if(isset($_POST['Modello']))
        {
            $Modello = $_POST['Modello'];
        }
        if(isset($_POST['Matricola']))
        {
            $Matricola = $_POST['Matricola'];
        }
        if(isset($_POST['Note']))
        {
            $Note = $_POST['Note'];
        }
        if(isset($_POST['DataDDT']))
        {
            $DataDDT = $_POST['DataDDT'];
        }
        if(isset($_POST['DDT']))
        {
            $DDT = $_POST['DDT'];
        }
        if(isset($_POST['Fornitore']))
        {
            $Fornitore = $_POST['Fornitore'];
        }
        if(isset($_POST['ACQNOL']))
        {
            $ACQNOL = $_POST['ACQNOL'];
        }
        if(isset($_POST['Scadenza']))
        {
            $Scadenza = $_POST['Scadenza'];
        }
        
        $stmt->execute();

    }
    if(isset($_POST['Aggiungiriga']))
    {
        echo "<script>aggiungiRiga()</script>";
    }
}
catch (PDOException $e)
{
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

<?php

try
{
        $user="root";
        $pass="";
        $dbh = mysql_connect("localhost","root",$pass);
        mysql_select_db('hardwarea') or die(mysql_error());
        $stmt = ("Select * from gestione");
        $ris= mysql_query($stmt) or die($stmt."<br/><br/>".mysql_error());
        
        while($rigo=mysql_fetch_array($ris))
        {
        
            echo" <tr> <td> " . $rigo['ID'] . " </td> <td> " . $rigo['Filiale'] . " </td> <td> " . $rigo['Ufficio'] . " </td> <td> " . $rigo['Utente'] . " </td> <td> " . $rigo['Tipo'] . " </td> <td> " . $rigo['Marca'] . " </td> <td> " . $rigo['Modello'] . " </td> <td> " . $rigo['Matricola'] . " </td> <td> " . $rigo['Note'] . " </td> <td> " . $rigo['DataDDT'] . " </td> <td> " . $rigo['DDT'] . " </td><td> " . $rigo['Fornitore'] . " </td> <td> " . $rigo['ACQNOL'] . " </td> <td> " . $rigo['Scadenza'] . " </tr>";
        }   
    
}
catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>
</form>
</body>
</html>
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.035
192
63
Lombardia
guardando solo la "insert", c'è qualche imprecisione (errore) nella sequenza delle operazioni e nella gestione delle variabili associate

PHP:
$stmt = $dbh->prepare("INSERT .... VALUES (?, ?, ....

subito dopo esegui

PHP:
$stmt->bindParam(1, $Filiale);

ma $Filiale non è valorizzata come non lo sono le altre variabili che seguono (per non dire inesistenti)

solo successivamente recuperi il valore, ma in modo inefficace, se $_POST non contiene la variabile, questa non viene valorizzata

PHP:
if(isset($_POST['Filiale']))
{
    $Filiale = $_POST['Filiale'];
}

al termine esegui

PHP:
$stmt->execute();

ma con quali valori ?

-----

la sequenza giusta dovrebbe essere,

recuperi TUTTE le variabili o le valorizzi con valori di default se $_POST non le contiene,
( ti suggerisco di gestirle in un'array esempio $myArray = ($Filiale, $Ufficio, ....)
rispettando la sequenza dei "?"

poi aggiorni il db
PHP:
$stmt = $dbh->prepare("INSERT .... VALUES (?, ?, ....
$stmt->execute($myArray);

con questo hai sistemato l'azione sul db (riducendo un po' di codice senza perdere i vantaggi della tua scrittura)

se ci sono altre cose che non vanno, specifica bene indicando l'errore che ti viene segnalato
 

marino51

Utente Attivo
28 Feb 2013
3.035
192
63
Lombardia
considera anche che insert/update/delete ti restituiscono il numero degli elementi che hanno trattato, consentendoti il controllo ($res)
PHP:
[PHP]$res = $dbh->prepare("INSERT .... VALUES (?, ?, ....)" )->execute($myArray);
 

Lalli

Nuovo Utente
6 Ott 2016
15
0
1
24
Grazie marino per l'interesse ma forse non mi sono spiegato bene, a me l'inserimento funziona, volevo aggiungere un bottone che tramite js mi aggiunga una riga alla tabella
 

Lalli

Nuovo Utente
6 Ott 2016
15
0
1
24
no, il primo codice è la parte in js e il secondo è come ho integrato il js nel mio php(che è quello che credo di aver sbagliato)
 
Discussioni simili
Autore Titolo Forum Risposte Data
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
M [javascript] Aggiungere eventi al caricamento Javascript 0
G [Javascript] aggiungere sub-namespace Javascript 0
G [RISOLTO][Javascript] aggiungere elemento ad array definito nella finestra madre da popup Javascript 4
asevenx [Javascript] aggiungere righe con select da database e calcolo sconto in automatico Javascript 0
Monital [Javascript] decidere dove aggiungere il campo dinamicamente Javascript 1
asevenx [Javascript] aggiungere dinamicamente un campo di un form Javascript 3
ACarty [Javascript] Aggiungere link alle foto. Javascript 19
P Tabella Dinamica in javascript (aggiungere righe con textinput) Javascript 1
D Aggiungere javascript a div Javascript 1
S Problemi Javascript + Aruba Javascript 2
M Inviare un file su un server remoto con JavaScript Javascript 0
T a href="javascript:;" Javascript 0
F Creare elementi html con javascript Javascript 2
A pulsante di update campo mysql con javascript Javascript 2
8 Javascript - PDF Form Javascript 0
B javascript per problemi con pdf e Safari Javascript 0
N informazione javascript Programmazione 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
P javascript:document.forms Javascript 7
S Consiglio esercizio Javascript Javascript 2
P Passaggio id php a javascript PHP 6
E lettura da un Database con Javascript jQuery 2
V TRIS in javascript Javascript 1
IClaude Funzione Javascript Javascript 8
Alex_70 Javascript date color Javascript 3
F Convertire JavaScript per la compatibilità nei browser obsoleti Javascript 0
I Passare dei parametri in javascript PHP 0
Shyson Meglio Javascript o HTML? Javascript 4
M Chiamare pagina php da javascript Javascript 8
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
D Javascript per il download dei dati Javascript 0
grgfede Problema javascript con aruba Javascript 1
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
W Modificare il Type di un Input box in javascript ovunque si trovi Javascript 0
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
L [Javascript] Problema salvataggio dati in db Javascript 1
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
G Quiz Javascript Javascript 4
A [Javascript] Scrittura su più campi contemporaneamente Javascript 19
F classic asp popolare combo box javascript Presentati al Forum 1
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
F [Javascript] comando innerHTML non funziona Javascript 5
alexice51 proggrammi per scrivere in javascript? Javascript 3
max1974 [Javascript] Accordion aria-exspanded Javascript 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
O [Javascript] Conflitto Jquery: forse... Javascript 0
M [Javascript] Canvas js css Javascript 1
M Programmazione web HTML, CSS e JavaScript Offerte e Richieste di Lavoro e/o Collaborazione 6
G [Javascript] Errore inserimento dati Backend Node.js e workbench Javascript 1

Discussioni simili