Ich habe eine HTML-Tabelle mit 4 Spalten: SKU-Gruppe, Group_ID, Schaltfläche Bearbeiten und Löschen. Ich arbeite jetzt an der Löschfunktion und möchte, dass, wenn ich die Löschtaste drücke, eine Bestätigungsbox erscheint und dann, wenn "OK" gedrückt wird, löscht sie die Zeile und sendet eine Löschabfrage, die sie aus der Datenbank löscht.Löschen der Tabellenzeile bei Button-Klick mit Ajax
Ich weiß, ich bin Ajax und einen separaten PHP-Skript für die Lösch-Abfrage zu verwenden, aber kann nicht scheinen, um herauszufinden. Jede Hilfe wird geschätzt!
HTML für Delete-Taste:
<td><input type="button" class="delete" name="delete" value="Delete" onclick="deleteRow(this)"></td>
JavaScript ... Ich weiß, das einige Arbeit braucht, aber es wegen meiner Frage bin Entsendung:
function deleteRow(r) {
if (confirm('Are you sure you want to delete this entry?')) {
var i = r.parentNode.parentNode.rowIndex;
document.getElementById("skuTable").deleteRow(i);
}
request = $.ajax({
type: "POST",
url: "delete.php",
data: i
});
request.done(function (response, textStatus, jqXHR){
if(JSON.parse(response) == true){
console.log("row deleted");
} else {
console.log("row failed to delete");
}
});
// Callback handler that will be called on failure
request.fail(function (jqXHR, textStatus, errorThrown){
// Log the error to the console
console.error(
"The following error occurred: "+
textStatus, errorThrown
);
});
// Callback handler that will be called regardless
// if the request failed or succeeded
request.always(function() {
});
}
delete.php:
<?php
$SKU_Group = $_POST['SKU Group'];
$Group_ID = $_POST['Group_ID'];
$host="xxxxxx";
$dbName="xxxxxx";
$dbUser="xxxxxxxxxxxxxx";
$dbPass="xxxxxxxxxxx";
$pdo = new PDO("sqlsrv:server=".$host.";Database=".$dbName, $dbUser, $dbPass);
$delete = "DELETE FROM SKU_Group_Dim WHERE Group_ID = '$Group_ID'";
$stmt = $pdo->prepare($delete);
$result = $stmt->execute();
echo json_encode($result);
if(!$result) {
echo json_encode(sqlsrv_errors());
}
?>
[Little Bobby] (http://bobby-tables.com/) sagt *** [Ihr Skript ist für SQL Injection Attacks gefährdet.] (Http://stackoverflow.com/questions/60174/how- can-i-prevent-sql-injection-in-php) ***. Sogar [die Zeichenfolge zu entkommen] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) ist nicht sicher! –
Das sieht aus, als ob Sie auf dem richtigen Weg sind, was nicht funktioniert? –
Ihre Datenvariable in Ajax hat nicht die Parameter, die Ihren $ _POST-Gettern aus der Sicht der Dinge entsprechen. –