Heim >Datenbank >MySQL-Tutorial >Warum verbirgt mein „if(isset($_POST['submit']))' das Echo und die Tabelle beim Laden der Seite nicht?

Warum verbirgt mein „if(isset($_POST['submit']))' das Echo und die Tabelle beim Laden der Seite nicht?

Susan Sarandon
Susan SarandonOriginal
2024-11-06 20:17:03414Durchsuche

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

Warum if(isset($_POST['submit'])) nicht funktioniert, um Echos und Tabelle beim Laden der Seite auszublenden

Problembeschreibung

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.

Lösung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn