2016-03-30 5 views
0

これが可能かどうかはわかりませんが、各要素をデータベースに明示的に保存せずに私の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(); 
+0

どうしますか? 'document.documentElement.outerHTML'は文字列を返します。それをデータベースにダンプするだけです。 – thangngoc89

+0

@ thangngoc89保存していません。 mysql型をlongtextに設定しました。 – Cybernetic

+0

JSON.stringifyはオブジェクトをとり、文字列に変換します。ドキュメントはすでに文字列であるので、その必要はありません – thangngoc89

答えて

1

文書で特殊文字の問題を防ぐために準備されたステートメントを使用します文字列。

$stmt = $conn->prepare("INSERT INTO table (user_id, user, string) VALUES (?, ?, ?)"); 
$stmt->bind_param("iss", $user_id, $user, $string); 
if ($stmt->execute()) { 
    echo "New record created successfully."; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 
+0

それでした。ありがとうございました。 – Cybernetic

関連する問題