Die if(isset($_POST['submit']))-Anweisung soll bestimmte Echos und eine Tabelle ausblenden, wenn das Skript zum ersten Mal geöffnet wird. Nach der Implementierung dieses Codes berichten Benutzer jedoch, dass die Echos und die Tabelle auch dann noch sichtbar sind, wenn auf die Schaltfläche „Senden“ geklickt wird.
Das Problem tritt auf, weil der Schaltfläche „Senden“ kein eindeutiger Wert zugewiesen ist Geben Sie den Namen im bereitgestellten Code ein. Um dies zu beheben, sollte der Schaltfläche ein Name gegeben werden, wie im korrigierten Code unten zu sehen ist:
<p><input type="submit" value="Submit" name="submit" /></p>
Mit dieser Änderung wird die if(isset($_POST['submit']))-Anweisung korrekt ausgeführt Erkennen Sie, wann auf die Schaltfläche „Senden“ geklickt wurde, und führen Sie die beabsichtigten Aktionen aus, um die gewünschten Elemente auszublenden.
Darüber hinaus fehlten im Originalcode die Datenbankkonnektivitätscodes, die eine Verbindung zur Datenbank herstellen. Zum besseren Verständnis lautet der korrigierte und vollständige Code wie folgt:
<?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(); ?>
Das obige ist der detaillierte Inhalt vonWarum verbirgt mein „if(isset($_POST['submit']))' das Echo und die Tabelle beim Laden der Seite nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!