>

아래 그림과 같이html/php 코드로 버튼을 클릭하면 PHP 코드의 특정 섹션을 호출하려고합니다.

<html> 
    <?php 
     if($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['go-button'])) {
     for each  ($mp4_files as $f) {
     }
    }
    ?>
  <form action ="" method="POST">
    <table>
       <td style="width:5%; text-align:center;"><button style="width:90px;" type="submit" name="go-button" value="Go"  class="btn btn-outline-primary">Go</button>  <!-- Line#B -->
   </table
  </form>
</html>

Line # B에서 버튼을 클릭하면 PHP 코드가 위에 호출되고if 블록내부로 이동합니다.

지금 당장 문제는 페이지를 새로 고칠 때 내가 원하지 않는 if 블록 안에 있다는 것입니다.이동 버튼을 클릭 할 때만 블록을 활성화하고 싶습니다.

문제 진술 :

위의php 코드에서 어떤 변경을해야하는지 궁금해서 페이지를 새로 고치면 if 블록 안에 들어 가지 않습니다.Line # B에서 버튼을 클릭 할 때만 가야합니다.


  • 답변 # 1

    어떻게 문제가 있었는지 잘 모르겠습니다. 한 의견에서는 사용자가 페이지를 다시로드 할 때 양식이 다시 제출되지 않도록하는 방법과 마찬가지로 실제로 머리에 못을 박았습니다. PHP가 컨텐츠를 생성하고 문서 본문 내에있는 경우 output buffering 를 사용해야하는 경우 다음과 같은 접근 방식을 채택 할 수 있어야합니다.   headers already sent 와 관련된 오류를 방지하기 위해

    <?php 
        if( $_SERVER['REQUEST_METHOD']=='POST' and !empty( $_POST['go-button'] ) ) {
            foreach( $mp4_files as $f ) {
                /* do stuff */
            }
            /* finished processing POST request, redirect to prevent auto re-submission*/
            exit( header( sprintf('Location: %s', $_SERVER['SCRIPT_NAME'] ) ) );
        }
    ?>
    <html>
        <head>
            <title></title>
        </head>
        <body>
            <form method="POST">
                <table>
                    <tr>
                        <td style="width:5%; text-align:center;">
                            <!-- Line#B -->
                            <button style="width:90px;" type="submit" name="go-button" value="Go" class="btn btn-outline-primary">Go</button>
                        </td>
                    </tr>
                </table>
            </form>
        </body>
    </html>
    
    

  • 이전 python 3.x - DNA 서열에 대한 word2vec 프로그램의 코드 오류
  • 다음 Redshift JDBC DatabaseMetaDatagetDatabaseMajorVersion ()이 최신 값을 반환합니까?