Maison > Article > base de données > Pourquoi mon `if(isset($_POST['submit']))` ne masque-t-il pas l'écho et le tableau lors du chargement de la page ?
L'instruction if(isset($_POST['submit'])) est destinée à masquer les échos spécifiés et une table lors de l'ouverture initiale du script. Cependant, après avoir implémenté ce code, les utilisateurs signalent que les échos et le tableau sont toujours visibles même après avoir cliqué sur le bouton de soumission.
Le problème se pose car le bouton de soumission ne reçoit pas d'attribut unique. nom dans le code fourni. Pour remédier à cela, il convient de donner un nom au bouton, comme le montre le code corrigé ci-dessous :
<p><input type="submit" value="Submit" name="submit" /></p>
Avec cette modification, l'instruction if(isset($_POST['submit'])) sera correctement détecter quand le bouton de soumission a été cliqué et effectuer les actions prévues pour masquer les éléments souhaités.
De plus, le code d'origine manquait les codes de connectivité de la base de données qui se connectent à la base de données. Pour une meilleure compréhension, le code corrigé et complet est le suivant :
<?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(); ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!