如何在多格式场景中保存以前的输入?

时间:2014-07-23 14:17:29

标签: javascript php jquery html forms

这就是我想要做的:我想保存所有表单的输入而不仅仅是一个,因为下面的代码将保存输入,比如说第二个表单但是当我转到第一个表单时,选择从提交按钮的值和clik的东西,它将记住第一个表单输入并忘记第二个表单输入。我想要一个解决方案,帮助我保持其他形式的先前值,直到我决定用另一个选定的值更改它。 你们中的一些人会说只是将它们放在一个表格中并且只有一个提交按钮,问题就会解决,但这不是我想要找到的解决方案,因为我在一个项目中工作,我需要一个解决方案而不将它们合并在一起。

<?php
if (($_SERVER['REQUEST_METHOD'] == 'POST') && (!empty($_POST['action']))):

    if (isset($_POST['semester1'])) { $semester1 = $_POST['semester1']; }
    if (isset($_POST['semester2'])) { $semester2 = $_POST['semester2']; }
    if (isset($_POST['semester3'])) { $semester3 = $_POST['semester3']; }
    if (isset($_POST['semester4'])) { $semester4 = $_POST['semester4']; }
    if (isset($_POST['semester5'])) { $semester5 = $_POST['semester5']; }
    if (isset($_POST['semester6'])) { $semester6 = $_POST['semester6']; }
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form class="form-horizontal" role="form" action='' method='POST' name="theform"><!--==========Start of the Form========-->

Semester: <select class="form-control" name="semester1">
                <option><?php if (isset($semester1)) { echo $semester1; } ?></option>
                              <option>Fall</option>
                              <option>Spring</option>
                              <option>Summer</option>  
                            </select>
<button type="submit" value="Submit"  name="action">Submit The Data</button>
</form>

<form class="form-horizontal" role="form" action='' method='POST' name="theform"><!--==========Start of the Form========-->

Semester: <select class="form-control" name="semester2">
                <option><?php if (isset($semester2)) { echo $semester2; } ?></option>
                              <option>Fall</option>
                              <option>Spring</option>
                              <option>Summer</option>  
                            </select>
<button type="submit" value="Submit"  name="action">Submit The Data</button>
</form>


<form class="form-horizontal" role="form" action='' method='POST' name="theform"><!--==========Start of the Form========-->

Semester: <select class="form-control" name="semester3">
                <option><?php if (isset($semester3)) { echo $semester3; } ?></option>
                              <option>Fall</option>
                              <option>Spring</option>
                              <option>Summer</option>  
                            </select>
<button type="submit" value="Submit"  name="action">Submit The Data</button>
</form>

</body>
</html>

2 个答案:

答案 0 :(得分:1)

似乎我找到了一个解决方案,似乎工作我需要感谢#DarkBee的会议理念。

<?php
session_start();
if (($_SERVER['REQUEST_METHOD'] == 'POST') && (!empty($_POST['action']))):

    if (isset($_POST['semester1'])) { $_SESSION['1'] = $_POST['semester1']; }else{$_SESSION['1'];}
    if (isset($_POST['semester2'])) { $_SESSION['2'] = $_POST['semester2']; }else{$_SESSION['2'];}
    if (isset($_POST['semester3'])) { $_SESSION['3'] = $_POST['semester3']; }else{$_SESSION['3'];}
    if (isset($_POST['semester4'])) { $semester4 = $_POST['semester4']; }
    if (isset($_POST['semester5'])) { $semester5 = $_POST['semester5']; }
    if (isset($_POST['semester6'])) { $semester6 = $_POST['semester6']; }
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form class="form-horizontal" role="form" action='' method='POST' name="theform"><!--==========Start of the Form========-->

Semester: <select class="form-control" name="semester1">
                <option><?php if (isset($_SESSION['1'])) { echo $_SESSION['1']; } ?></option>
                              <option>Fall</option>
                              <option>Spring</option>
                              <option>Summer</option>  
                            </select>
<button type="submit" value="Submit"  name="action">Submit The Data</button>
</form>

<form class="form-horizontal" role="form" action='' method='POST' name="theform"><!--==========Start of the Form========-->

Semester: <select class="form-control" name="semester2">
                <option><?php if (isset($_SESSION['2'])) { echo $_SESSION['2']; } ?></option>
                              <option>Fall</option>
                              <option>Spring</option>
                              <option>Summer</option>  
                            </select>
<button type="submit" value="Submit"  name="action">Submit The Data</button>
</form>


<form class="form-horizontal" role="form" action='' method='POST' name="theform"><!--==========Start of the Form========-->

Semester: <select class="form-control" name="semester3">
                <option><?php if (isset($_SESSION['3'])) { echo $_SESSION['3']; } ?></option>
                              <option>Fall</option>
                              <option>Spring</option>
                              <option>Summer</option>  
                            </select>
<button type="submit" value="Submit"  name="action">Submit The Data</button>
</form>

</body>
</html>

答案 1 :(得分:0)

作为基于会话的表单数据存储的简单示例。 请注意使用@来表示错误/通知未完成

<?php
session_start();
if (!isset($_SESSION['txt_name'])) $_SESSION['txt_name'] = [];

if (!empty($_POST)) {
    ##-- cause i'm lazy 
    foreach($_POST['txt_name'] as $key => $value) {
        $_SESSION['txt_name'][$key] = $value;
    }
}   
for ($i = 0; $i < 10; $i++) {
    echo '<form name="form'.$i.'" id="form'.$i.'" action="#form'.$i.'" method="POST">';
    echo '<label for="txt_name'.$i.'">Name'.$i.'</label>';
    echo '<input type="text" id="txt_name'.$i.'" name="txt_name['.$i.']" value="'.@$_SESSION['txt_name'][$i].'">';
    echo '<button type="submit">Submit</button>';
    echo '</form>';
}
?>