Rumah  >  Artikel  >  pangkalan data  >  Mengapakah `if(isset($_POST['submit']))` saya Tidak Menyembunyikan Gema dan Jadual pada Muatan Halaman?

Mengapakah `if(isset($_POST['submit']))` saya Tidak Menyembunyikan Gema dan Jadual pada Muatan Halaman?

Susan Sarandon
Susan Sarandonasal
2024-11-06 20:17:03337semak imbas

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

Mengapa jika(isset($_POST['submit'])) Tidak Berfungsi untuk Menyembunyikan Gema dan Jadual pada Pemuatan Halaman

Penerangan Masalah

Pernyataan if(isset($_POST['submit'])) bertujuan untuk menyembunyikan gema dan jadual tertentu apabila skrip dibuka pada mulanya. Walau bagaimanapun, selepas melaksanakan kod ini, pengguna melaporkan bahawa gema dan jadual masih kelihatan walaupun selepas butang serah diklik.

Penyelesaian

Isu timbul kerana butang serah tidak ditetapkan sebagai unik nama dalam kod yang disediakan. Untuk membetulkannya, butang itu hendaklah diberi nama, seperti yang dilihat dalam kod yang diperbetulkan di bawah:

<p><input type="submit" value="Submit" name="submit" /></p>

Dengan pengubahsuaian ini, pernyataan if(isset($_POST['submit'])) akan betul mengesan apabila butang hantar telah diklik dan lakukan tindakan yang dimaksudkan untuk menyembunyikan elemen yang dikehendaki.

Selain itu, kod asal terlepas kod sambungan pangkalan data yang bersambung ke pangkalan data. Untuk pemahaman yang lebih baik, kod yang diperbetulkan dan lengkap adalah seperti berikut:

<?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();
?>

Atas ialah kandungan terperinci Mengapakah `if(isset($_POST['submit']))` saya Tidak Menyembunyikan Gema dan Jadual pada Muatan Halaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn