2016-03-30 9 views
0

Bunun mümkün olup olmadığından emin değilim, ancak her bir öğeyi veritabanına açıkça kaydetmeden web sayfamın tüm durumunu kaydetmenin bir yolunu arıyorum. Örneğin, web sayfası gereksinim duyduğu gibi görünene kadar düğmeler, onay kutuları, metinler vb. Dinamik olarak dinamik olarak oluşturuyorum. DOM'u bir dize olarak veya veritabanında blob olarak kaydedebilir ve daha sonra web sayfasını geri alabilir miyim?Mysql içinde tüm DOM'ı kaydet

var doc = document.documentElement.outerHTML; 

Sonra veritabanına dize kaydetmek ama çalışmıyor:

gibi şeyler denedim.

// 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

Neler işe yaramaz? document.documentElement.outerHTML' bir dizge döndürür. Sadece veritabanına dök. – thangngoc89

+0

@ thangngoc89 kaydetmiyor. Mysql türünü longtext olarak ayarlıyorum. – Cybernetic

+0

JSON.stringify bir nesneyi alır ve dizeye dönüştürür. Doküman zaten bir dize – thangngoc89

cevap

1

Kullanım belgesinde özel karakterleri ile sorunları önlemek için hazırlanmış bir deyimi:

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 benziyor:

ben mysql yazmak için bir PHP komut dosyası için bir AJAX Arama kullanıyorum dize.

$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

O kadardı. Teşekkür ederim. – Cybernetic