Ich versuche, Daten mit HTML und PHP zu bearbeiten. In meiner HTML-Datei gibt es eine Tabelle, die die Daten aus einer SQLite-Datenbank enthält (SELECT-Anweisung funktioniert gut). Die PHP-Datei enthält die UPDATE-Anweisung mit einigen concat.So erhalten Sie aktuellen Inhalt aus HTML-Tabelle mit PHP
sshTunnel.sqlite -> mydata
CREATE TABLE "mydata" ("ID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "SSH_USER" VARCHAR, "SSH_IP" VARCHAR, "SSH_PORT" VARCHAR, "SSH_PW" VARCHAR, "SSH_KEYFILE" VARCHAR, "TUNNEL_LOCAL_INTERFACE" VARCHAR, "TUNNEL_LOCAL_PORT" VARCHAR, "TUNNEL_REMOTE_IP" VARCHAR, "TUNNEL_REMOTE_PORT" VARCHAR, "DESCRIPTION" VARCHAR)
Dies ist der "HTML" Teil:
while ($row = $results->fetchArray(SQLITE3_ASSOC))
{
$output .= '<tr>
<td class="ID" data-id1="' . $row['ID'] . '">' . $row['ID'] . '</td>
<td class="SSH_USER" data-id2="' . $row['ID'] . '" contenteditable="true">' . $row['SSH_USER'] . '</td>
<td class="SSH_IP" data-id3="' . $row['ID'] . '" contenteditable="true">' . $row['SSH_IP'] . '</td>
<td class="SSH_PORT" data-id4="' . $row['ID'] . '" contenteditable="true">' . $row['SSH_PORT'] . '</td>
<td class="SSH_PW" data-id5="' . $row['ID'] . '" contenteditable="true">' . $row['SSH_PW'] . '</td>
<td class="SSH_KEYFILE" data-id6="' . $row['ID'] . '" contenteditable="true">' . $row['SSH_KEYFILE'] . '</td>
<td class="TUNNEL_LOCAL_INTERFACE" data-id7="' . $row['ID'] . '" contenteditable="true">' . $row['TUNNEL_LOCAL_INTERFACE'] . '</td>
<td class="TUNNEL_LOCAL_PORT" data-id8="' . $row['ID'] . '" contenteditable="true">' . $row['TUNNEL_LOCAL_PORT'] . '</td>
<td class="TUNNEL_REMOTE_IP" data-id9="' . $row['ID'] . '" contenteditable="true">' . $row['TUNNEL_REMOTE_IP'] . '</td>
<td class="TUNNEL_REMOTE_PORT" data-id10="' . $row['ID'] . '" contenteditable="true">' . $row['TUNNEL_REMOTE_PORT'] . '</td>
<td class="DESCRIPTION" data-id11="' . $row['ID'] . '" contenteditable="true">' . $row['DESCRIPTION'] . '</td>
<td><button type="button" name="btn_edit" data-id12="' . $row['ID'] . '" class="btn btn-xs btn-warning btn-block btn_edit">Editieren</button></td>
<td><button type="button" name="btn_delete" data-id13="' . $row['ID'] . '" class="btn btn-xs btn-danger btn-block btn_delete">Löschen</button></td>
</tr>';
}
Dies ist das Skript Teil:
$(document).on('click', '.btn_edit', function()
{
var ID = $(this).data("id12");
if(confirm("Are you sure you want to edit this?"))
{
$.ajax({
type: "POST",
url: "edit.php",
data: {ID:ID},
dataType: "text",
success: function(data)
{
alert('ajax success');
fetch_data();
}
});
}
});
Schließlich ist dies die PHP Teil:
<?php
$db = new SQLite3('sshTunnel.sqlite');
$db->exec('UPDATE mydata SET SSH_USER="' . $_POST['SSH_USER'] . '",
SSH_IP="' . $_POST['SSH_IP'] . '",
SSH_PORT="' . $_POST['SSH_PORT'] . '",
SSH_PW="' . $_POST['SSH_PW'] . '",
SSH_KEYFILE="' . $_POST['SSH_KEYFILE'] . '",
TUNNEL_LOCAL_INTERFACE="' . $_POST['TUNNEL_LOCAL_INTERFACE'] . '",
TUNNEL_LOCAL_PORT="' . $_POST['TUNNEL_LOCAL_PORT'] . '",
TUNNEL_REMOTE_IP="' . $_POST['TUNNEL_REMOTE_IP'] . '",
TUNNEL_REMOTE_PORT="' . $_POST['TUNNEL_REMOTE_PORT'] . '",
DESCRIPTION="' . $_POST['DESCRIPTION'] . '"
WHERE ID="' . $_POST['ID'] . '"');
$db->close();
?>
Es scheint, dass es keinen Inhalt gepuffert ist. Anstatt die Datenbank korrekt zu aktualisieren, löschen die Skripte den gesamten Zeileninhalt. Es scheint, dass sie alle Spalten mit NULL aktualisieren. Weiß jemand warum?
Es scheint, als würde $ _POST keine Daten in Ihrer PHP-Seite bekommen. Versuchen Sie, $ _POST zu drucken. Ich bin sicher, dass Sie null Array erhalten werden. –
Korrekt. Also, wie behebe ich das Problem? Ich habe versucht, $ _GET, aber das funktioniert auch nicht. – gpuk360