如何从另一个php页面回显$ success变量

时间:2017-08-23 07:39:16

标签: php html

我正在使用模式框中的表单将值插入到数据库中,除了成功弹出窗口外,一切正常。

查询在funtions.php页面上运行

//create account
if (isset($_POST['btn-signup'])){
    $firstname = test_input($_POST['firstname']);
    $email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
    $pass = test_input($_POST['password']);
    $cpass = test_input($_POST['confirm_password']);

    if ($pass == $cpass){
        $password = password_hash($pass, PASSWORD_DEFAULT);

        $signupQuery = "INSERT INTO draadlozeAccount (firstname, email, pass) VALUES 
        ('$firstname','$email','$password')";
        $signupResult = $conn->query($signupQuery);
        if (!$signupResult) {
            echo $conn->error;
            $conn->close();

        } else {
            $success = '<div class="notification pos-right pos-bottom col-sm-4 col-md-3" data-animation="from-bottom" data-notification-link="trigger">
                                <div class="boxed boxed--border border--round box-shadow">
                                    <img alt="avatar" class="image--sm" src="img/logo.png" />
                                    <div class="text-block">
                                        <h5>Success</h5>
                                        <p>
                                           Your account has been created successfully. You will receive an email soon.
                                        </p>
                                    </div>
                                </div>
                            </div>';
        }
    }

}

然后在index.php上我回应成功

                    <?php
                    if (isset($_POST['btn-signup'])) {
                        echo $success;
                    }
                    ?>

我的问题是,为什么我的成功窗口不会出现?我缺少什么

5 个答案:

答案 0 :(得分:2)

我相信你要做的是,在function.php档案中

$_SESSION['success'] = "<div ...... ";

index.php

if (isset($_SESSION['success']){
    echo $_SESSION['success'];
}

但我推荐像function.php

这样的内容
$_SESSION['success'] = true;

index.php

<?php 
if(isset($_SESSION['success']){
    ?>
    <div ............... your html ...... />
    <?php
}

使用success以外的特定名称,例如signupsuccess

答案 1 :(得分:0)

您是否了解变量范围?变量仅限于当前页面。您可以使用会话变量来维护状态管理。会话变量仅限于当前会话。

} else {
        $_SESSION['success'] = '<div class="notification pos-right pos-bottom col-sm-4 col-md-3" data-animation="from-bottom" data-notification-link="trigger">
                            <div class="boxed boxed--border border--round box-shadow">
                                <img alt="avatar" class="image--sm" src="img/logo.png" />
                                <div class="text-block">
                                    <h5>Success</h5>
                                    <p>
                                       Your account has been created successfully. You will receive an email soon.
                                    </p>
                                </div>
                            </div>
                        </div>';
    }

并像这样使用

echo $_SESSION['success'];

答案 2 :(得分:0)

从我看到的,你试图在另一个文件中打印变量集,这是不可能的。在脚本结束时,所有声明都被烧毁,用户浏览的页面调用的脚本没有任何剩余可用。

ir只有三种方法可以在下一页中提供数据:

  • 将其保留在您的数据库中,然后再检索它。
  • 将其发送到HTTP请求为GET或POST的页面。
  • 使用会话并将$success存储为$_SESSION
  • 中的会话变量

答案 3 :(得分:0)

您也可以将您的success-html-code-snippet放在一个单独的文件中,例如&#34;成功-snippet.inc.html&#34;然后使用&#34; file_get_contents()&#34;获取内容。需要的时候。如果您喜欢上述会话,则必须先启动会话。

答案 4 :(得分:0)

您可能需要表格或ajax ajax代码:

$(document).ready(function(){
    $("#senden").click(function(){
		var daten = $('#formular').serialize();
        $.ajax({
			url: "test.php",
			type: 'post',
			data: daten,
			dataType: 'json',
			success: function(result){
				$("#result").val(result.passwort);
				$('#test').html(result.test);
			},
			error: function(xhr, status){
				console.log('AJAX returned ' + status);
			}
		});
    });
});

您可以自己查看如何包含和使用它。