2017-03-12 6 views
0

ich eine HTML-Tabelle von PHP (aus den Ergebnissen der SQL-Abfrage) erzeugt haben:PHP-generierten Tabellen Taste funktioniert Onclick nur für die erste

echo "<table border=\"5\"><tr><th>Codice</th><th>Titolo</th><th>Anno Creazione</th><th>Materiale</th><th>Altezza</th><th>Peso</th><th>Museo</th></tr>"; 
while($row = mysqli_fetch_assoc($results)) { 
     echo "<tr><td>".$row["Codice"]."</td><td>".$row["Titolo"]."</td><td>".$row["Anno_creazione"]."</td><td>".$row["Materiale"]."</td><td>".$row["Altezza"]."</td><td>".$row["Peso"]."</td><td>".$row["Museo"]."</td><td><button id=\"modifica\" type=\"button\">Modifica</button></td><td><button id=\"cancella\" type=\"button\">Cancella</button></td></tr>"; 
} 
echo "</table>"; 

Dann habe ich diese JQuery:

$("#cancella").click(function(){ 
    if(confirm("Vuoi davvero eliminare questi dati?")){ 
     var codice = <?php echo json_encode($cod); ?>; 
     var tipo = <?php echo json_encode($tipo_opera); ?>; 
     window.location.href = "delete.php?codice="+codice+"&tipo="+tipo; 
    } 
}); 

Diese Klick-Funktion funktioniert nur für die Schaltfläche "Löschen" in der ersten Zeile. Warum?

Antwort

2

id ist eindeutig und kann daher nur einem element zugewiesen werden.

Verwenden Sie eine class.

<button class=\"cancella\" type=\"button\">Cancella</button> 

$(".cancella").click(function(){ 
// Do Something. 
}); 

Alternative:

<button type=\"button\" onclick=\"cancella()\">Cancella</button> 

function cancella(){} 
+0

eine Klasse verwenden und verwenden Sie dann den 'this' Element innerhalb des Click-Ereignis – Hammerbot

+0

Wenn ich eine Klasse verwenden Sie es nicht, und die Chrome-Konsole nicht wieder Fehler überprüfen –

+0

lassen mich arbeiten ... –

0
<button id=\"cancella\" type=\"button\">Cancella</button> 

Bedürfnisse einer Klasse sein, nicht eine ID

0

Die ID eindeutig sein sollte, wenn das in Ihrer DOM-Struktur Wiederholung wird dann stehen Sie vor der Problem. Verwenden Sie class cancella etwas und definieren Sie dann ein Datenattribut, um ein bestimmtes Element zu identifizieren, wenn Sie möchten.

So wird Ihr Code sein ...

in Html

echo "<tr><td>".$row["Codice"]."</td><td>".$row["Titolo"]."</td><td>".$row["Anno_creazione"]."</td><td>".$row["Materiale"]."</td><td>".$row["Altezza"]."</td><td>".$row["Peso"]."</td><td>".$row["Museo"]."</td><td><button id=\"modifica\" type=\"button\">Modifica</button></td><td><button data-myid=".$row['id']." class='cancella' type=\"button\">Cancella</button></td></tr>"; 

In JS

$(".cancella").click(function(){ 
    if(confirm("Vuoi davvero eliminare questi dati?")){ 
    var particular_element = $(this).attr('data-myid'); 
    } 
}); 

Auch wenn Sie dynamisch "mehr" Elemente hinzugefügt werden, dann sollten Sie $(document).on('click', '.cancella', function(){}); stattdessen verwenden von $(".cancella").click(), hoffe es hilft.

Verwandte Themen