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 ?

Pourquoi mon `if(isset($_POST['submit']))` ne masque-t-il pas l'écho et le tableau lors du chargement de la page ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-06 20:17:03328parcourir

Why is my `if(isset($_POST['submit']))` Not Hiding the Echo and Table on Page Load?

Pourquoi if(isset($_POST['submit'])) ne fonctionne pas pour masquer les échos et le tableau lors du chargement de la page

Description du problème

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.

Solution

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn