2012-03-26 3 views
1
<form id="enter" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" onsubmit="return validateForm(this);" > 
    <p> 
     <input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" onClick="myClickHandler(); return false;" /> 
    </p> 
</form> 

<script type="text/javascript"> 
    function myClickHandler(){ 
     if(validation()){ 
        showConfirm(); 
     } 
    } 
</script> 

<?php 
    session_start(); 

    $outputDetails = ""; 
    $outputDetails .= "<table id='sessionDetails' border='1'> 
          <tr> 
           <th>Number of Sessions:</th> 
           <th>{$_POST['sessionNum']}</th> 
          </tr>"; 
    $outputDetails .= "</table>"; 
    echo $outputDetails; 
?> 

위의 양식은 위의 코드입니다. 내가하려는 일은 사용자가 양식을 제출하면 양식이 다시 자신의 페이지로 이동한다는 것입니다. 그러나 "SessionNum"이 '1'이면 폼을 자체에 게시하는 대신 폼을 게시하거나 "session_marks.php"페이지로 이동해야하지만 idn이 아니라면 sessionNum이 1이면 여전히 양식을 제출하거나 자체 페이지로 돌아가서 무엇을 잘못 했습니까?양식이 다른 페이지로 이동하지 않습니다.

또한 sessionNum의 번호를 표시 한 다음 양식을 제출하면 양식이 다시 제출되어 번호가 사라집니다. 어떻게 자신에게 양식을 제출하면 번호가 표시 않게 할 수 있나요?

감사

양식 게시물의 대상을 변경할 수있는 조건부 논리이다
+1

왜 $ _SERVER 변수에'htmlentities()'를 사용하겠습니까? – Blake

+0

PHP_SELF를 사용할 때 웹에서 본 예일뿐입니다. – user1292857

+0

이 모든 결과를 보여줄 수 있습니까? 나오는 실제 HTML? – YonoRan

답변

1

? 모두 내가 form에서 볼 이 항상 formaction 현재 PHP 파일이 아닌 다른 PHP 파일로 설정합니다

action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" 

: 태그이있다. 조건부로 다른 파일에 게시하려면 여기에 조건부 논리를 추가해야합니다. 이런 식으로 뭔가 (그것을 할 수있는 더 나은 방법이있을 수 있지만, 내가 PHP와 연습에서 매우이야 명심) :

는 숫자가 사라지고에 관해서는
action="<?php $_POST['sessionNum'] == 1 ? echo 'session_marks.php' : echo htmlentities($_SERVER['PHP_SELF']); ?>" 

, 내가 어떤 표시되지 않습니다 이름이 sessionNum 인 양식 요소 그러한 양식 요소가 없으면 $_POST['sessionNum']에는 아무것도 표시되지 않으므로 표시 할 값이 없기 때문에 숫자가 "사라집니다".

+0

안녕하세요, sessionNum 이전 페이지에서 사용자가 이전 페이지의 텍스트 상자에 숫자를 입력 한 다음 현재 페이지에서 이전 페이지에 입력 된 번호를 표시합니다. – user1292857

+0

@ user1292857 : 현재 페이지의 초기 게시물에는 작동합니다. 그러나 일단 현재 페이지에 다시 게시하면 게시되는 양식에'sessionNum '이 없으면 표시 할 값이 없습니다. – David

+0

이것이 해결 될 수있는 방법이 있습니까, 아니면 양식을 스스로 제출할 때이 방법을 사용합니까? – user1292857

0

위 코드가 실제 코드 인 경우 session_start(); 다른 출력물 (html, php의 echo, print 등) 앞에 놓여 야합니다.

+0

시작 부분에 session_start()를 넣었지만 동일한 작업을 계속했습니다. 번호가 '1'이면 다른 페이지로 이동하지 않고 같은 페이지로 이동합니다. – user1292857

관련 문제