Ich habe eine Datenbank namens "Gäste" mit zwei Spalten: Sitz und Name. Ich möchte diese Datenbank in einer PHP-Seite zeigen, wo der Benutzer auf den Wert "Name" doppelklicken und es bearbeiten kann, die Datenbank aktualisieren, wenn er irgendwo anders klickt (es verwischt).Editierbare Datenbanktabelle mit PHP + Ajax + jQuery
Die PHP:
<?php
include "connect.php";
$result = mysqli_query($con, "SELECT * FROM guests");
echo "<table>";
while($row = mysqli_fetch_assoc($result)){
echo "<tr><td contenteditable='true' onClick='showEdit(this);' onBlur='saveToDatabase(this,'Name','".$row['seat']."')'>" . $row['Name'] . "</td>
<td>" . $row['seat'] . "</td></tr>";
}
echo "</table>";
?>
Die jQuery:
<script>
function saveToDatabase(editableObj,what,where) {
$(editableObj).css("background","#FFF url(loaderIcon.gif) no-repeat right");
$.ajax({
url: "handle.php",
type: "POST",
data:'what='+what+'&newvalue='+editableObj.innerHTML+'&where='+where,
success: function(data){
$(editableObj).css("background","#FDFDFD");
}
});
}
</script>
Die Server-Seite (handle.php):
<?php
include "connect.php";
$what = $_POST["what"];
$newvalue = $_POST["newvalue"];
$where = $_POST["where"];
$sql = "UPDATE guests SET $what='$newvalue' WHERE seat='$where'";
if ($con->query($sql) === TRUE) {
header("Location: success.php");
} else {
header("Location: error.php");
}
?>
Derzeit, nachdem der Benutzer bearbeiten die "name" Wert und klicken Sie irgendwo anders, nichts passiert, und die Datenbank wird nicht aktualisiert.
Was ist '$ was' in Ihrer Update-Abfrage? –
Haben Sie überprüft, wie die $ sql-Anweisung aussieht? Gibt es ein Fehlerprotokoll? – RGriffiths
Zain Farooq - "was" ist welche Spalte zu ändern (in diesem Fall "Name"), "wo" ist in welcher Zeile. In diesem Test gibt es nur Name und Sitz, aber ich plane, andere Spalten wie E-Mail, Telefon, etc. hinzuzufügen. Und das ist, wo $ nützlich ist. Das System muss wissen, was der Benutzer gerade bearbeitet. – Jonhz