多步形式,在提交第一个表格后记住第二种形式的复选框值

时间:2016-05-22 18:26:50

标签: php

我使用jquery Tabs有多步形式,每个步骤或Tab都有不同的形式 用action(action ='reg.php#tabs-1')等等......直到最后。 每个标签中都有“保存”按钮,它记住了SESSION中的选定值。

tab1:选择具有两个值的输入,例如(option1,option2)

tab2:有复选框,根据tab1中选定的部分(option1或option2)显示(如果在tab1中选择了option1,则在tab2中显示复选框,其中name ='a',name ='b'OR如果选中option2在tab1中,然后在tab2中显示名称='x'且名称='z'的复选框)

在SESSIONS的tab2中按下Save按钮后,我记住了这些值。

问题是:当我勾选tab2中的一个复选框,保存它们,然后返回到tab1,更改select中的任何其他值,然后单击tab1中的Save,我在tab2中选中的复选框值将取消选中

但我钢铁希望他们被检查

PHP:

<?php session_start(); if (!empty($_SESSION['animal'])){if($_SESSION['animal']=='1'){$selected1='selected';$selected2='';} else {$selected2='selected';$selected1='';}}if (!empty($_POST['animal'])){if ($_POST['animal']=='1'){$selected1='selected';$selected2='';$_SESSION['animal']=$_POST['animal'];}else {$selected2='selected';$selected1='';$_SESSION['animal']=$_POST['animal'];}} if ($_POST['a']=='dog'){$_SESSION['a']=$_POST['a'];$checked1='checked';} else { $checked1='';unset ($_SESSION['a']);}if ($_POST['z']=='horse'){ $_SESSION['z']=$_POST['z']; $checked2='checked';} else {$checked2='';unset ($_SESSION['z']);}?>

脚本:

$(function() {$( "#tabs" ).tabs();});

HTML:

<script src="js/jquery.js"></script><link rel="stylesheet" href="js/jquery.custom/jquery-ui.css"><script type="text/javascript" src="js/jquery.custom/jquery-ui.min.js"></script><div id="tabs">
<ul>
    <li><a id="step1" href="#tabs-1">step 1</a></li>
    <li><a id="step2" href="#tabs-2" >step 2</a></li>
</ul>
<div id="tabs-1">
    <form method='post' name='field1' id='field1' action='ureg4.php#tabs-1' >
        <select name='animal' value='<?php echo $_SESSION['animal']?>'>         
            <option value='1' <?php echo $selected1?>>option one</option>
            <option value='2' <?php echo $selected2?>>option two</option>
        </select>
        <input type='submit' name='submit' value='save'>
    </form>
</div>
<div id="tabs-2">
    <form method='post' name='field2' id='field2' action='ureg4.php#tabs-2' >
        <?php 
        if ($_SESSION['animal']==1){echo "<input type='checkbox' name='a' value='dog' id='a'".$checked1." /><label for='a'><span class='icon'></span>Dog</label><br>";}
        if ($_SESSION['animal']==2){echo "<input type='checkbox' name='z' value='horse'  id='z' ".$checked2." /><label for='z'><span class='icon'></span>horse</label><br>";}
        ?>
        <input type='submit' name='submit' value='save'>
    </form>
</div>
</div>

1 个答案:

答案 0 :(得分:0)

检查此

session_start(); 

if (!empty($_SESSION['animal'])){
    if($_SESSION['animal']=='1'){
        $selected1='selected';
        $selected2='';
    } else {
        $selected2='selected';
        $selected1='';
    }
}

if (!empty($_POST['animal'])){

    if ($_POST['animal']=='1'){
        $selected1='selected';$selected2='';
        $_SESSION['animal']=$_POST['animal'];
    }else {
        $selected2='selected';
        $selected1='';
        $_SESSION['animal']=$_POST['animal'];
    }
}


if (!empty($_POST)){

    if ($_POST['a']=='dog'){
        $_SESSION['a']=$_POST['a'];
        $checked1='checked';
    } else {
        $checked1='';
        unset ($_SESSION['a']);
    }
}


if (!empty($_POST)){
    if ($_POST['z']=='horse'){
        $_SESSION['z']=$_POST['z']; 
        $checked2='checked';
     } else {
        $checked2='';
        unset ($_SESSION['z']);
     }
}




if($_SESSION['z']=='horse'){
   $checked2='checked';
}


if($_SESSION['a']=='dog'){
   $checked1='checked';
}