2014-07-13 2 views
0

연속해서 제출하고 동일한 페이지에 머물 수 있습니까?PHP - 동일한 페이지에 연속 제출

나는 채우기 위해 하나의 양식을 필요로하고 두 번째, 그리고 세 번째, 등등 ... 그리고 answer.For 예에 따라 서로 다른 기능과 형태를 트리거 할 수 있습니다 : 예

<form method="post"> 
     Sex?<input type="text" name="sex"> 
      <input type="submit" name ="submit_sex" value="Submit"> 
</form> 


<?php 
if(isset($_POST['submit_sex'])){ 
     echo("Fist submit done"); 
     ?> 

     <form method="post"> 
      Age?<input type="text" name="age"> 
       <input type="submit" name ="submit_age" value="Submit"> 
      </form> 
    <?php 
     if(isset($_POST['submit_age'])){ 
      echo("Second submit done"); 
      } 
} 
?> 
+0

양식을 제출하고 다시 제출한다는 의미입니까? – bfontaine

+0

코드를 다시 업로드하고 세부 정보를 추가했습니다. – Cornelius

답변

1

을 하지만, Ajax를 사용하면 더 사용하기 쉬울 것입니다. 하지만 귀하의 경우, 표시 할 양식을 감지하는 조건문을 사용하는 것이 더 효율적 것이고, 절대 최소 입력 검증을 위해, 당신은 적어도 빈 값을 확인해야합니다

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
    <?php 
     if(isset($_POST['third_question']) && $_POST['third_question'] != "") { 
      // store value of $_POST['third_question'] in a cookie 
      // Last question answered, do what you need to next with all the values 
     } elseif(isset($_POST['second_question']) && $_POST['second_question'] != "") { 
      // store value of $_POST['second_question'] in a cookie 
      Third Question? <input type='text' name='third_question' /> 
     } elseif(isset($_POST['first_question']) && $_POST['first_question'] != "") { 
      // store value of $_POST['first_question'] in a cookie, then display next quesion 
      Second Question? <input type='text' name='second_question' /> 
     } else { 
      First Question? <input type='text' name='first_question' /> 
     } 
    ?> 
    <input type="submit" name="submit" value="Submit" /> 
</form> 
0

나는 생각한다 브라우저 측에서 이렇게하는 것이 더 합리적 일 것입니다. 당신은 같은 것을 할 수있는 :

<form method="post"> 
    <div id="sexInput"> 
     Sex?<input type="text" name="sex" /> 
      <input type="button" name="submit_sex" value="Submit" onClick="showAge()" /> 
    </div> 
    <div id="ageInput" style="display:none;"> 
     Age?<input type="text" name="age" /> 
      <input type="submit" value="Submit" /> 
    </div> 
</form> 

을하고 sexInput의 DIV를 숨기고 ageInput의 DIV를 표시하는 기능 showAge() 있습니다. 이 방법은 실제로는 모두 하나의 양식으로, 결국 한꺼번에 제출되지만 사용자에게 한 번에 한 파트 씩 표시됩니다.

+0

그러나 양식이 어떻게 보이는지 알 수 없습니다. 수신 된 데이터에 따라 계산을 한 다음 문제 해결의 다음 단계로 이어질 적절한 양식을 제시합니다. – Cornelius

관련 문제