-Tag, mit dem Daten an den Hintergrund übergeben, aber nicht auf der Seite angezeigt werden. Dies ist das verborgene Feld. in P"/> -Tag, mit dem Daten an den Hintergrund übergeben, aber nicht auf der Seite angezeigt werden. Dies ist das verborgene Feld. in P">

Heim  >  Artikel  >  Backend-Entwicklung  >  So übergeben Sie ein Array durch ein verstecktes Feld in PHP

So übergeben Sie ein Array durch ein verstecktes Feld in PHP

PHPz
PHPzOriginal
2023-04-19 11:40:44469Durchsuche

In der Webentwicklung müssen wir häufig Formulare verwenden, um Benutzereingabeinformationen zu sammeln. In einigen Fällen müssen wir jedoch gleichzeitig einige Daten an die Hintergrundverarbeitung übergeben, und diese Daten erfordern keine Benutzereingabe oder -anzeige. Zu diesem Zeitpunkt können Sie ausgeblendete Felder verwenden, um diese Daten zu übergeben. In der PHP-Entwicklung können wir ein Array durch versteckte Felder übergeben.

Was ist eine versteckte Domain?

In HTML gibt es ein -Tag, das dazu dient, Daten an den Hintergrund weiterzugeben, aber nicht auf der Seite anzuzeigen. Dies ist das verborgene Feld.

In PHP können wir auch ein verstecktes Feld über das Tag definieren, um Daten an den Server zu übergeben.

Wie übergebe ich ein Array?

Wenn Sie ein Array übergeben möchten, müssen Sie das Array serialisieren und es dann im ausgeblendeten Feld speichern. Der folgende Code kann beispielsweise ein assoziatives Array serialisieren und in einem versteckten Feld speichern:

<form method="post" action="process.php">
    <input type="hidden" name="data" value="<?php echo htmlspecialchars(json_encode($data)); ?>">
    <input type="submit" value="Submit">
</form>

Im obigen Code definieren wir ein verstecktes Feld mit dem Namen „data“ und serialisieren das assoziative Array $data. Der Wert wird dann dem zugewiesen „value“-Attribut dieses ausgeblendeten Feldes. Beachten Sie, dass wir vor dem Speichern des versteckten Felds zunächst die in PHP integrierte Funktion json_encode() verwenden, um das assoziative Array in einen JSON-String zu serialisieren.

Auf der Serverseite können wir die Funktion json_decode() verwenden, um den JSON-String in ein assoziatives Array zu deserialisieren. Beispielsweise kann der folgende Code das zuvor übergebene verborgene Feld in ein assoziatives Array analysieren:

$data = json_decode($_POST['data'], true);

Im obigen Code verwenden wir $_POST['data'], um die in der Zeichenfolge des verborgenen Felds gespeicherten serialisierten JSON-Zeichen abzurufen, und dann Verwenden Sie die Funktion json_decode(), um es in ein assoziatives Array zu deserialisieren.

Es ist wichtig zu beachten, dass wir den zweiten Parameter auf true setzen müssen, um das Ergebnis in ein assoziatives Array umzuwandeln.

Beispieldemonstration

Um das Prinzip und die Implementierung der Übergabe von Arrays in versteckten Feldern besser zu verstehen, stellen wir unten eine Beispieldemonstration zur Verfügung. Dieses Beispiel ist ein einfaches Message-Board-System. Nachdem der Benutzer eine Nachricht hinterlassen hat, wird der Nachrichteninhalt in der MySQL-Datenbank gespeichert und die Nachrichtenliste wird auf der Seite angezeigt.

Werfen wir zunächst einen Blick auf den Front-End-Code, der für die Darstellung des Nachrichtenformulars und der Nachrichtenliste verantwortlich ist:

<!DOCTYPE html>
<html>
<head>
    <title>Message Board Demo</title>
</head>
<body>
    <h1>Message Board Demo</h1>
    <form method="post" action="process.php">
        <p><label>Your Name:</label><br><input type="text" name="name"></p>
        <p><label>Message:</label><br><textarea name="message"></textarea></p>
        <input type="hidden" name="action" value="add">
        <p><input type="submit" value="Submit"></p>
    </form>
    <hr>
    <h2>Message List</h2>
    <ul>
        <?php foreach ($messages as $message) : ?>
            <li><?php echo htmlspecialchars($message[&#39;name&#39;] . &#39;: &#39; . $message[&#39;message&#39;]) ?></li>
        <?php endforeach; ?>
    </ul>
</body>
</html>

Im obigen Code definieren wir ein Formular, in das der Benutzer den Namen und den Nachrichteninhalt eingeben kann. Klicken Sie dann auf die Schaltfläche „Senden“, um das Formular abzuschicken. Im Formular definieren wir ein verstecktes Feld, um einen Befehlszeilenparameter „Aktion“ zu übergeben, um dem Hintergrund mitzuteilen, welche Vorgänge wir ausführen möchten. Hier setzen wir „Aktion“ auf „Hinzufügen“ und geben damit an, dass wir eine neue Nachricht hinzufügen möchten.

Nach dem Absenden des Formulars müssen wir den vom Benutzer eingegebenen Namen und Nachrichteninhalt zur Verarbeitung an den Server senden. Die spezifische Verarbeitungslogik ist im Hintergrund-PHP-Code implementiert.

Das Folgende ist der Backend-Code, der das Hinzufügen und Lesen von Kommentaren abwickelt:

<?php
// 连接到数据库
$conn = new mysqli(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;, &#39;database&#39;);

// 检查连接是否成功
if ($conn->connect_error) {
    die('Connection failed: ' . $conn->connect_error);
}

// 处理留言添加操作
if ($_POST['action'] == 'add') {
    $name = $_POST['name'];
    $message = $_POST['message'];
    $sql = "INSERT INTO messages (name, message) VALUES ('$name', '$message')";
    $result = $conn->query($sql);
    if (!$result) {
        die('Error: ' . $conn->error);
    }
}

// 读取留言列表
$sql = "SELECT * FROM messages ORDER BY id DESC";
$result = $conn->query($sql);
if (!$result) {
    die('Error: ' . $conn->error);
}

$messages = [];
while ($row = $result->fetch_assoc()) {
    $messages[] = $row;
}

$conn->close();

Im obigen Code stellen wir zunächst eine Verbindung zur MySQL-Datenbank her und prüfen, ob die Verbindung erfolgreich ist. Bestimmen Sie dann anhand des übermittelten Parameters „Aktion“, welchen Vorgang der Benutzer ausführen möchte.

Wenn der Parameter „Aktion“ „Hinzufügen“ lautet, bedeutet dies, dass der Benutzer eine neue Nachricht hinzufügen möchte. Wir rufen den vom Benutzer eingegebenen Namen und Nachrichteninhalt aus dem Array $_POST ab und verwenden dann die Insert-Anweisung, um den Nachrichteninhalt in die MySQL-Datenbank zu schreiben.

Wenn der Parameter „Aktion“ auf „Lesen“ steht, bedeutet dies, dass der Benutzer die Nachrichtenliste lesen möchte. Wir fragen alle Nachrichtendatensätze aus der MySQL-Datenbank ab und speichern die Ergebnisse in einem assoziativen Array $messages.

Schließlich schließen wir die Verbindung zur MySQL-Datenbank und übergeben das Array $messages an den Front-End-Code, damit der Benutzer die Liste der Nachrichten sehen kann.

Fazit

Anhand der obigen Beispieldemonstration können wir sehen, wie versteckte Felder zum Übergeben von Arrays verwendet werden. In der täglichen Webentwicklung müssen wir häufig einige Daten zur gleichzeitigen Verarbeitung an den Hintergrund übergeben, ohne dass Benutzereingaben oder -anzeigen erforderlich sind. Die Verwendung versteckter Felder kann diese Funktion gut erfüllen, und die Verwendung von Arrays kann die Flexibilität der Datenübertragung verbessern und die Entwicklung und Wartung unserer Programme erleichtern.

Das obige ist der detaillierte Inhalt vonSo übergeben Sie ein Array durch ein verstecktes Feld in PHP. 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