2017-06-12 128 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访问特定用户的所有答案或某个问题的所有答案。

使用这种数据库结构比将每一个信息填充到一个大表中更加通用。

我可以给你更详细的信息或代码,如果你需要它。

相关问题