Dovrei realizzare un script javascript nella pagina che alla pressione del bottone elimini la relativa riga della lista.
Il codice scritto da me è il seguente:
<!DOCTYPE html>
<html>
<head>
<title>Prova Esame</title>
<style>
body{
width: 300px;
margin: 0 auto;
}
</style>
</head>
<body>
<h1>Lista da file JSON</h1>
<ul>
<?php
$datafile = "data.json";
$datastr = file_get_contents($datafile);
$data = json_decode($datastr, true);
$sum = 0;
$output = "<ul>";
foreach ($data['lista'] as $data) {
$output .= "<li id='myLi'>".$data['Descrizione']." ".$data['Numero']."\t<button id='delete' onclick='deleteList()'><b>-</b></button>"."</li>";
$sum+= $data['Numero'];
}
$output .= "<li id='somma'>"."Somma numeri: ".$sum."</li>";
$output .= "</ul>";
echo $output;
?>
</ul>
<script type="text/javascript">
function deleteList(){
var item = document.getElementById('myLi');
item.parentNode.removeChild(item);
var somma = "<?php ($sum); ?>";
document.write(somma);
};
</script>
</body>
</html>
e questo il file json da cui estrapolo la lista:
{
"lista":[
{
"Descrizione": "Gino",
"Numero" : 7
},
{
"Descrizione": "Marco",
"Numero" : 2
},
{
"Descrizione": "Pino",
"Numero" : 1
},
{
"Descrizione": "Lino",
"Numero" : 9
}
]
}
Come potete notare ho prima realizzato uno script php che legge il file json, e lo mostra in una pagina html. Ogni elemento della lista contiene descrizione, il numero ed un bottone. Alla fine della lista devo mostrare il totale che è ottenuto come somma dei numeri (calcolato in php).
Il mio problema, che penso derivi dal fatto che con lo script php gli id degli elementi nella lista sono tutti uguali, è che quando clicco sul bottone mi viene rimosso sempre il primo elemento della lista, come posso ovviare al problema?