Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话返回按钮?_Php_Html - Fatal编程技术网

PHP会话返回按钮?

PHP会话返回按钮?,php,html,Php,Html,嗯。所以我使用会话来存储数据,因为我正在制作一个多页表单。问题是,我需要一个后退按钮。我有一个提交按钮,它会将用户带到下一页,并将数据存储到会话中,但我需要在提交按钮旁边有一个后退按钮,以防他们因任何原因出错。是否可以用php制作一个返回按钮,在显示他们输入的数据时将他们带回上一页?这是我的一页代码。 此外,我也尝试过使用history.go,但这只适用于一页 <?php //let's start the session session_start(); //now, let's r

嗯。所以我使用会话来存储数据,因为我正在制作一个多页表单。问题是,我需要一个后退按钮。我有一个提交按钮,它会将用户带到下一页,并将数据存储到会话中,但我需要在提交按钮旁边有一个后退按钮,以防他们因任何原因出错。是否可以用php制作一个返回按钮,在显示他们输入的数据时将他们带回上一页?这是我的一页代码。 此外,我也尝试过使用history.go,但这只适用于一页

<?php

//let's start the session
session_start();

//now, let's register our session variables
$_SESSION['opinion1'] = 'opinion1';
$_SESSION['choice1'] = 'choice1';

//finally, let's store our posted values in the session variables
$_SESSION['opinion1'] = $_POST['opinion1'];
$_SESSION['choice1'] = $_POST['choice1'];

?>

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href='http://fonts.googleapis.com/css?family=Playball' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="bootstrap.css">
<link rel="stylesheet" href="main.css">
<link rel="stylesheet" type="text/css" href="engine1/style.css" />
<script type="text/javascript" src="engine1/jquery.js"></script>
<script src="jquery.cycle2.js"></script>
<title>Untitled Document</title>
</head>

<body>

<div class="nav">
    <div class="container">
        <h1 class="pull-left">Securing the Future of Village Walk</h1>
        <div class="pull-right">
        <ul class="nav nav-pills">
            <li class="active"><a href="#">home</a></li>
            <li><a href="#">about</a></li>
            <li><a href="#">contact</a></li>
        </ul>
        </div>
    </div>
</div>

<div class="ammendment">
    <div class="container">
        <form method="post" action="page4_form.php">
            <textarea id="opinion2" name="opinion2" value=""></textarea>
            <label for="Yes">Yes</label>
            <input type="radio" name="choice2" value="Yes">
            <label for="No">No</label>
            <input type="radio" name="choice2" value="No">
            <label for="Neither">Neither</label>
            <input type="radio" name="choice2" value="Neither">
            **I NEED BACK BUTTON HERE**
            <input type="submit" value="Next">
        </form>
    </div>
</div>


</body>
</html>

您可以添加一个附加表单,如下所示:



首先,我将以一种便于您将输入的数据与输入的页面关联起来的方式组织会话数据

一种可能是在阵列中组织会话数据:

$_SESSION['formData'] = array(
    array(... data for step 1 ),
    array(... data for step 2 ),
    array(... data for step 3 ),
);
因此,
$formData[0]
将保存在步骤1中输入的数据,以此类推

至于按钮,再提交一次就足够了:

<input type="submit" value="Back" />
为每个页面构建表单时,必须记住添加带有页码的隐藏字段:

<form method="post" action="page_form.php">
    <input type="hidden" name="page" value="<?php echo $page; ?>" />


只需检查输入是否保存了有效的会话值。如果是这样的话,请相应地更新表单字段。但是,如果每次都不重新提交表单,我如何创建一个“后退”按钮?与CSS有关吗?我不这么认为。但是你能帮我做些必要的动作吗?哈哈?我对php不太在行,如果用户每次都不重新提交表单,这也行吗?您希望执行什么操作?上述代码需要表单提交/页面请求。如果您想在不重新提交表单的情况下“动态”处理它,那么您必须研究客户端脚本-javascript。当用户点击后退按钮时,我希望它将他们带到上一页。在上一页中,我希望它显示表单以及他们已经在表单中输入的内容。此外,如果有办法,它将自动重新提交表单,而不告诉用户。至少当我回去重新提交时,它会在谷歌浏览器上告诉我,好吧。我想我明白了。所以从技术上讲只有一页,但是表单的其他部分是隐藏的?然后,当他们单击“下一步”时,它会将他们带到下一个隐藏页面,反之亦然。对吗?另外,你认为你可以帮我一个忙,也许可以把我的代码和实现你的,我不太擅长phpNot必然隐藏。对于两步输入过程。您将有一个form_process.php,在其中启动会话,确定是否按下了后退按钮,并设置变量,如答案所示。然后您将有另外两个文件:form_part-1.php和form_part-2.php,您将根据需要包含它们。至于你的要求:那实际上是我谋生的方式。我很乐意帮助你,但我甚至不确定这里是否允许这样的讨论。
<form method="post" action="page_form.php">
    <input type="hidden" name="page" value="X" />
<?php
... 

$page = $_POST['page'];
if ( isset($_POST['Back']) ) // Going back
{
    $page -= 1; // Previous page requested 

    // Retrieve data from session
    $data = $_SESSION['formData'][$page-1]; // $page-1 because of zero based array indexes. 

    ...

    // Dynamically load the proper page processor. 
    // each pageX_form.php will know how to deal with the variable $data. 
    include  "page{$page}_form.php" 
}
else
{
    $page += 1; // Next page requested
    $data = $_POST; // In this case, the data is whatever was entered
}
<form method="post" action="page_form.php">
    <input type="hidden" name="page" value="<?php echo $page; ?>" />
<form method="post" action="page<?php echo $page; ?>_form.php">