2017-06-12 129 views
-4

如何使用wordpress中的會話將數據從多頁表單保存到數據庫中?將數據從多頁表單保存到數據庫Wordpress

session_start(); 
foreach ($_POST as $key => $value) { 
    $_SESSION['post'][$key] = $value; 
} 
extract($_SESSION['post']); 
if (isset($_POST["submit"])) { 
    extract($_SESSION['post']); 
    //global $wpdb; 
    //$wpdb->insert("tablename", array("data" => $_SESSION["data"], array("%s")); 
    include 'dbconnect.php'; 
    try { 
     $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $sql = "INSERT INTO tablename (data) VALUES ('{$data}')"; 
     $conn ->exec($sql); 
    } 
     catch(PDOException $e) 
    { 
     echo "Connection failed: " . $e->getMessage(); 
    } 
     $conn = null; 
     session_destroy(); 
    } 

我想在數據庫中保存多頁表單。我沒有保存單個頁面的問題。但是,一旦我嘗試使用$ _SESSION,它將不再保存數據。 預先感謝您 更新:我無法讓它使用$ wpdb工作;但它使用PDO工作得很好。

+0

您可以一次保存一小段,或者保存一小段時間。那麼你到目前爲止嘗試過哪些方法 – Anigel

+0

這個想法是將所有內容保存在最後 –

+0

頁面是否一致? – xyious

回答

0

我會用隱藏的輸入生成第二頁的表單,其中第一個表單的值爲您輸入的值。然後將所有值保存到數據庫,然後在第二個表格中檢查它們。

0

我會在你的數據庫中使用三個表。所有參與調查的客戶都只有很少的信息(如時間戳,姓名或某事),其中包含所有問題(問題文本,他們列在其中的頁面等),第三個用戶ID和quesionID以及回答。這種結構對於調試是非常直觀的,但仍然是更好的選擇。

例如,您是否可以發出SELECT * FROM questions WHERE page=2,並且您可以在第二頁獲得所有問題。
但您在這裏的最大好處是您可以獨立於其他答案而安全回答答案表。

您可以通過SELECT * FROM answers WHERE uid=5訪問特定用戶的所有答案或某個問題的所有答案。

使用這種數據庫結構比將每一個信息填充到一個大表中更加通用。

我可以給你更詳細的信息或代碼,如果你需要它。

相關問題