有如下需求,希望大侠指导
INPUT表单1
<input type=text name=id1 value=''>//用来输入文本1
<input type=text name=id2 value=''>//用来输入文本2
<input type=sumbit name=ida value=''>//用来提交输入的信息
我想点击了提交ida后界面输出INPUT表单2
<input type=text name=id3 value=''>//用来输入文本1
<input type=text name=id4 value=''>//用来输入文本2
<input type=sumbit name=idb value=''>//用来进一步提交输入的信息
<input type=sumbit name=idc value=''>//用来返回上一input表单1界面,但要把表单一输入的信息存储下来
当点击了提交idb后进入表单3
我想点击了提交ida后界面输出INPUT表单2
<input type=text name=id4 value=''>//用来输入文本1
<input type=text name=id5 value=''>//用来输入文本2
<input type=sumbit name=ide value=''>//用来再一次提交输入的信息
<input type=sumbit name=idf value=''>//用来返回上一input表单2界面,但要把表单二输入的信息存储下来就输输入玩的信息,当在界面上点返回按钮时能把上一级的信息存下来,方便更改。求指导。。用IF结构设计的头有点大

解决方案 »

  1.   

    直接把参数通过url传啊
    或者保存在session里。
    url加个 step 来标识在第几步这样就行了。
      

  2.   

    这就是典型的ajax应用了.
    A.将所有需要输入的部分 分别写在<div id='xxxx'>内
    B.默认从 第一个div 显示 当ajax提交之后 显示第二个div
    C.类推B需要掌握的内容1.js/Jquery控制 div 的隐藏与显示
    2.jquery 的 ajax 方法POST/GET
      

  3.   

    AJAX现在还没学到,想对PHP基本函数设计,简单数据库设计研究研究,现在做了一个简单的系统,唯一差的就是动态输入、返回的设计问题。之前用IF控制 某个ID 的value值=$_post[id1],点返回后会保留数据,但层次一多久弄不清楚哪个条件走哪条路了。
      

  4.   

    你这个是跳转的,不需要使用ajax,你可以在url上传个参数,标识一下,你是在第几步操作了。
      

  5.   


    如果是这样 那就要做好注释呀....还有 用switch 就清晰明了了,而且switch 比if 的效率高 .
      

  6.   


    //可以POST/GET
    if(isset($_POST['name'])){
        switch($_POST['name']){
            case'ida':
                //输出内容 表单2
                break;
            case 'idb':
                //输出内容 表单3内容
                break;
            //...
            default:
                //默认无匹配输出的内容
                break;    }}else{
        //默认没有任何提交参数时显示部分
    }
      

  7.   

    哥们,这样的代码我也试验过,不过在PHP同一页面内传值好像保存不下来,总是保存最后一次POST的值。难道必须的用$_SESSION[] 存储中间变量?
      

  8.   

    你要保存什么值,你就将传递上去的内容再输出不就可以再传递了么?
    echo '<input type="hidden" name="text1" value="'.$_POST['someValue'].'">';
      

  9.   

    跟php没关系吧。
    <script>
          function goBack(id,o){
                document.getElementById(id).style.display='block';
        o.parentNode.style.display='none';
      }
       function goNext(id,o){
                document.getElementById(id).style.display='block';
    o.parentNode.style.display='none';
      }
    </script><form action="demo.php" method="post">
    <div id="id1">
    <input type="text" name="id1" value=''>
    <input type="text" name="id2" value=''>
    <input type="button" name="ida" value='按钮1' onclick="goNext('id2',this)">
    </div><div id="id2" style="display:none">
    <input type="text" name="id3" value=''>
    <input type="text" name="id4" value=''>
    <input type="button" name="idb" value='返回2' onclick="goBack('id1',this)">
    <input type="button" name="idc" value='按钮2' onclick="goNext('id3',this)">
    </div><div id="id3" style="display:none">
    <input type="text" name="id4" value=''>
    <input type="text" name="id5" value=''>
    <input type="button" name="ide" value='返回3' onclick="goBack('id2',this)">
    <input type="submit" name="idf" value='提交'>
    </div>
    </form>
      

  10.   


    这个好象只能满足哪块内容显示,但是之前在表但中输入的内容不知道怎么保存下来.我写代码是这样的,但是在表单中输入的内容,仍然无法在点返回按钮时保存下来并输出.<html>
      <body>  
      <form method="post" action=""> 
       <?php
        global $mm;
        global $nn;
        $mm=array();
       
        if (!$_POST['1click'] and !$_POST['2click'] and !$_POST['1back'] and !$_POST['2back'])
        { echo 
       ' 
          <input name="fruit" value="banana" /><br />
          <input name="color" value="yellow" /><br />
          <input name="1click" type="submit" value="一次点击进入界面2">
       
        <br />
        <b>POST</b> :  ' ;    //输出到scr2的接口
        $m=$_POST["fruit"];
        $n=$_POST["color"];
        }
        if ($_POST['1click']) {
           
          
         echo '
          <input name="fruit" value='.$m.' /><br />
          <input name="color" value='.$n.' /><br />
          <input name="2click" type="submit" value="二次点击进入界面3">  
          <input name="1back" type="submit" value="Click 首次反回界面1It">
        
        <br />
        <b>POST</b> :  ';            //输出到scr3的接口   和返回scr2的接口
         
        }
        
       // else if ($_POST['1back']) {
           // echo
       // '<form method="post" action="">
       //   <input name="fruit" value="$m" /><br />
       //   <input name="color" value="$n" /><br />
       //   <input name="1click" type="submit" value="一次点击进入界面2">
       // </form>
       // <br />
      //  <b>POST</b> :';   
       // }
        if ($_POST['2click']) {    //假定现在在界面2    ,点了就进入3 ,点返回就回到界面1
            global $v;
        global $b;
        $v=$_POST['fruit'];
        $b=$_POST['color'];     
            echo
        '
          <input name="fruit" value='."$v".' /><br />
          <input name="color" value='."$b".' /><br />
          <input name="3click" type="submit" value="三次点击输出结果">
          <input name="2back" type="submit" value="Click 二次返回界面2It">
        
        <br />
        <b>POST</b> : ';
        
        }
        if ($_POST['1back']) { //实现返回第一个界面
            echo
        '
          <input name="fruit" value='.$m.' /><br />
          <input name="color" value='."$n".' /><br />
          <input name="1click" type="submit" value="一次点击进入界面2">
          
        
        <br />
        <b>POST</b> : ';   }
        if ($_POST['3click']) {     //假定在界面3
        global $c;
        global $x;
        $c=$_POST['fruit'];
        $x=$_POST['color'];     
            echo
        '
         
          <input name="3back" type="submit" value="Click 二次返回界面2It">
        </form>
        <br />
        <b>POST</b> : ';
            
        }
         if ($_POST['2back']) {             //实现返回第二个界面
            echo
        '
          <input name="fruit" value='."$v".' /><br />
          <input name="color" value='."$b".' /><br />
          <input name="2click" type="submit" value="二次点击进入截面3">
          <input name="1back" type="submit" value="Click 首次返回界面1It">
        
        <br />
        <b>POST</b> : ';   }
    ?>    
        
        
    <?php
    $be_var = $_POST;foreach ($be_var as $key => $value ) {
    $be_var= $be_var."&".$key."=".$value;
    }
    echo str_replace( "array&", "", $be_var ); // fruit=banana&color=yellow
    ?>
    </form>
      </body>
    </html>
      

  11.   

    保存在session里, 外加个状态, 根据请求和当前状态做状态转移和数据的session记录.
      

  12.   

    newnew,首先说你的思路完成不了我的目的,你只能实现表单的返回和提交,但是用户提交的历史记录无法在返回和提交过程中无法实现值的变化,还有乔丹的代码也是实现某个ID的代码块的显示,和你的CASE是一样的.这些我也都实现了。开始只是想办法看是否可以通过不用$_session  $_cookie传递变量的形式满足我的需求.学习么.
    至于你说的懒得不懒得回答.对于斑竹的你..我无语....
      

  13.   

    看了半天,总算搞明白你的意思了
    看看这个测试例,应该是你想要的<form method=post>
    <?php
    $num = 2;$p = 0;
    $h = 0;
    $mh = 0;
    $val = array_fill(0, $num, '');
    if($_POST) {
      $h = $_POST['h'];
      $mh = max($_POST['mh'], count($_POST['id']));
      if(isset($_POST['s'])) {
        $h++;
        if($h * $num >= $mh) $val = array_merge($_POST['id'], $val);
        else $val = $_POST['id'];
      }else {
        $val = $_POST['id'];
        $h--;
      }
    }
    foreach($val as $k=>$v) {
      if(floor($k/$num) == $h) {
        $t = $k+1;
        echo "文本$t<input type=text name=id[$k] value='$v'>";
      }else
        echo "<input type=hidden name=id[$k] value='$v'>";
    }
    echo "<input type=hidden name=mh value=$mh>";  
    echo "<input type=hidden name=h value=$h>";  
    echo "<input type=submit name=s value='提交'>";
    if($h) echo "<input type=submit name=r value='返回'>";
    echo "<br />h:$h mh:$mh val:" . join(',', $val);
    ?>
    </form>
      

  14.   

     
    zuning大哥 ,你太优秀了.......array_merge,我还总想用array_push,怎么都没弄好.
    我就想么,php怎么也不至于非得用SESSION么,就是这个意思,万分感谢,稍后结贴,让大家在欣赏下这优秀的代码.................完美.