これが可能かどうかはわかりませんが、各要素をデータベースに明示的に保存せずに私のWebページの状態全体を保存する方法を探しています。DOM全体をmysqlに保存します
たとえば、ウェブページが必要になるまで、ボタン、チェックボックス、テキストなどを動的に作成します。 DOMを文字列、またはデータベースのBLOBとして保存し、後でWebページを取得して解析することはできますか?
var doc = document.documentElement.outerHTML;
が続いてデータベースに文字列を保存するが、それは動作しません:
私はのようなものを試してみました。
私は、MySQLへの書き込みにPHPスクリプトへのAJAX呼び出しを使用しています:
jQuery.ajax({
type: "POST",
url: 'connect/database.php',
dataType: 'json',
data: {functionname: 'connect_to_database', arguments: [user_id, user, doc] },
success: function (obj, textstatus) {
if(!('error' in obj)) {
}
else {
console.log(obj.error);
}
}
});
PHPは次のようになります。
// connection script
$servername = "XXX";
$username = "XXX";
$password = "XXX";
$dbname = "XXX";
$user_id = $_POST['arguments'][0];
$user = $_POST['arguments'][1];
$string = $_POST['arguments'][2];
// create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO table (user_id, user, string) VALUES ('$user_id', '$user', '$string')";
# $sql = "UPDATE crows_nest SET json_string='$configuration' WHERE user = '$user'";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
どうしますか? 'document.documentElement.outerHTML'は文字列を返します。それをデータベースにダンプするだけです。 – thangngoc89
@ thangngoc89保存していません。 mysql型をlongtextに設定しました。 – Cybernetic
JSON.stringifyはオブジェクトをとり、文字列に変換します。ドキュメントはすでに文字列であるので、その必要はありません – thangngoc89