if(isset($_POST['submit'])) 문은 스크립트가 처음 열릴 때 지정된 에코와 테이블을 숨기기 위한 것입니다. 그러나 이 코드를 구현한 후 사용자는 제출 버튼을 클릭한 후에도 에코와 테이블이 계속 표시된다고 보고합니다.
제출 버튼에 고유한 항목이 할당되지 않았기 때문에 문제가 발생합니다. 제공된 코드에 이름을 입력하세요. 이 문제를 해결하려면 아래 수정된 코드에서 볼 수 있듯이 버튼에 이름을 지정해야 합니다.
<p><input type="submit" value="Submit" name="submit" /></p>
이 수정을 사용하면 if(isset($_POST['submit'])) 문이 올바르게 작동합니다. 제출 버튼을 클릭한 시점을 감지하고 원하는 요소를 숨기기 위해 의도한 작업을 수행합니다.
게다가 원본 코드에서는 데이터베이스에 연결하는 데이터베이스 연결 코드가 누락되었습니다. 이해를 돕기 위해 수정되고 완성된 코드는 다음과 같습니다.
<?php $username = "xxx"; $password = "xxx"; $database = "mobile_app"; mysql_connect('localhost', $username, $password); @mysql_select_db($database) or die("Unable to select database"); $sessionid = isset($_POST['sessionid']) ? $_POST['sessionid'] : ""; $moduleid = isset($_POST['moduleid']) ? $_POST['moduleid'] : ""; $teacherid = isset($_POST['teacherid']) ? $_POST['teacherid'] : ""; $studentid = isset($_POST['studentid']) ? $_POST['studentid'] : ""; $grade = isset($_POST['grade']) ? $_POST['grade'] : ""; $orderfield = isset($_POST['order']) ? $_POST['order'] : ""; $sessionid = mysql_real_escape_string($sessionid); $moduleid = mysql_real_escape_string($moduleid); $teacherid = mysql_real_escape_string($teacherid); $studentid = mysql_real_escape_string($studentid); $grade = mysql_real_escape_string($grade); switch ($orderfield) { case 'ordersessionid': $orderfield = 'gr.SessionId'; break; case 'ordermoduleid': $orderfield = 'm.ModuleId'; break; case 'orderteacherid': $orderfield = 's.TeacherId'; break; case 'orderstudentid': $orderfield = 'gr.StudentId'; break; case 'ordergrade': $orderfield = 'gr.Grade'; break; } $ordertable = $orderfield; $result = mysql_query("SELECT * FROM Module m INNER JOIN Session s ON m.ModuleId = s.ModuleId JOIN Grade_Report gr ON s.SessionId = gr.SessionId JOIN Student st ON gr.StudentId = st.StudentId WHERE ('$sessionid' = '' OR gr.SessionId = '$sessionid') AND ('$moduleid' = '' OR m.ModuleId = '$moduleid') AND ('$teacherid' = '' OR s.TeacherId = '$teacherid') AND ('$studentid' = '' OR gr.StudentId = '$studentid') AND ('$grade' = '' OR gr.Grade = '$grade') ORDER BY $ordertable ASC"); $num = mysql_numrows($result); if (isset($_POST['submit'])) { echo "<p>Your Search: <strong>Session ID:</strong> "; if (empty($sessionid)) echo "'All Sessions'"; else echo "'$sessionid'"; echo ", <strong>Module ID:</strong> "; if (empty($moduleid)) echo "'All Modules'"; else echo "'$moduleid'"; echo ", <strong>Teacher Username:</strong> "; if (empty($teacherid)) echo "'All Teachers'"; else echo "'$teacherid'"; echo ", <strong>Student Username:</strong> "; if (empty($studentid)) echo "'All Students'"; else echo "'$studentid'"; echo ", <strong>Grade:</strong> "; if (empty($grade)) echo "'All Grades'"; else echo "'$grade'"; "</p>"; echo "<p>Number of Records Shown in Result of the Search: <strong>$num</strong></p>"; echo "<table border='1'>"; echo "<tr>"; echo "<th>Student Id</th>"; echo "<th>Forename</th>"; echo "<th>Session Id</th>"; echo "<th>Grade</th>"; echo "<th>Mark</th>"; echo "<th>Module</th>"; echo "<th>Teacher</th>"; echo "</tr>"; while ($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['StudentId'] . "</td>"; echo "<td>" . $row['Forename'] . "</td>"; echo "<td>" . $row['SessionId'] . "</td>"; echo "<td>" . $row['Grade'] . "</td>"; echo "<td>" . $row['Mark'] . "</td>"; echo "<td>" . $row['ModuleName'] . "</td>"; echo "<td>" . $row['TeacherId'] . "</td>"; echo "</tr>"; } echo "</table>"; } mysql_close(); ?>
위 내용은 내 `if(isset($_POST['submit']))`가 페이지 로드 시 에코와 테이블을 숨기지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!