PHP Mysql只在提交后插入

Ric*_*ard 3 html php mysql post pdo

我有2页.在用户在第1页上插入所有信息后,他们转到第2页.所有输入的信息都正确存储在$ _POST中,因此我可以在下一页中访问它.我也可以插入mysql数据库就好没问题.我正在尝试做的事情是只在第二页上单击提交按钮时执行插入数据库代码.我试过这样做:

使page2.php

<script>
$(document).ready(function(e) {
    $("#PaySubmit").click(function() {
        $.ajax({
            url: 'Insert.php'
        });
    });
});
</script>
<input type="submit" name="PaySubmit" id="PaySubmit" value="Continue"/>
Run Code Online (Sandbox Code Playgroud)

Insert.php

try {
    $link = new PDO('mysql:host=****;dbname=****;charset=UTF-8','****','****');
    $first = $_POST["fname"];
    $last = $_POST["lname"];

    $stmt = $link -> prepare("INSERT INTO Conference (`First Name`, `Last Name`) VALUES (:first, :last)");
        $stmt->bindParam(':first', $first);
        $stmt->bindParam(':last', $last);
    $stmt->execute();

} catch(PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
Run Code Online (Sandbox Code Playgroud)

问题是,当您在第二页上单击"提交"时,$ _POST将被第二页中的数据替换,因此我无法再访问第一页的数据.关于如何解决这个问题的任何想法?

Zev*_*cht 5

存储当前SESSION中第一篇文章的所有值.

然后,您可以使用$_SESSION全局访问它们.

看看序列化功能,它可能能够帮到你很多.或者json_encode.它们对于将数组存储在一个变量中并在以后检索它非常有用.

  • 尝试`foreach($ _POST as $ k => $ v){$ _SESSION [$ k] = $ v; }` (2认同)