我正在使用模式框中的表单将值插入到数据库中,除了成功弹出窗口外,一切正常。
查询在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;
}
?>
我的问题是,为什么我的成功窗口不会出现?我缺少什么
答案 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只有三种方法可以在下一页中提供数据:
$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);
}
});
});
});
您可以自己查看如何包含和使用它。