Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menghantar tatasusunan melalui medan tersembunyi dalam php

Bagaimana untuk menghantar tatasusunan melalui medan tersembunyi dalam php

PHPz
Lepaskan: 2023-04-19 13:43:12
asal
539 orang telah melayarinya

Dalam pembangunan web, kami selalunya perlu menggunakan borang untuk mengumpul maklumat input pengguna. Walau bagaimanapun, dalam beberapa kes, kami perlu menghantar beberapa data ke pemprosesan latar belakang pada masa yang sama, dan data ini tidak memerlukan input atau paparan pengguna. Pada masa ini, anda boleh menggunakan medan tersembunyi untuk menghantar data ini. Dalam pembangunan PHP, kita boleh menghantar tatasusunan melalui medan tersembunyi.

Apakah itu medan tersembunyi?

Dalam HTML, terdapat teg yang digunakan untuk menghantar data ke latar belakang tetapi tidak dipaparkan pada halaman. Ini adalah medan tersembunyi.

Dalam PHP, kami juga boleh menentukan medan tersembunyi melalui teg

Bagaimana untuk lulus tatasusunan?

Jika anda ingin menghantar tatasusunan, anda perlu menyusun tatasusunan dan kemudian menyimpannya dalam medan tersembunyi. Contohnya, kod berikut boleh mensiri tatasusunan bersekutu dan menyimpannya dalam medan tersembunyi:

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

Dalam kod di atas, kami mentakrifkan medan tersembunyi bernama "data" dan meletakkan Tatasusunan bersekutu $data ialah bersiri dan diberikan kepada atribut "nilai" medan tersembunyi ini. Ambil perhatian bahawa sebelum kami menyimpan medan tersembunyi, kami mula-mula menggunakan fungsi json_encode() terbina dalam PHP untuk mensiri tatasusunan bersekutu ke dalam rentetan JSON.

Di bahagian pelayan, kita boleh menggunakan fungsi json_decode() untuk menyahsiri rentetan JSON ke dalam tatasusunan bersekutu. Sebagai contoh, kod berikut boleh menghuraikan medan tersembunyi yang diluluskan sebelum ini ke dalam tatasusunan bersekutu:

$data = json_decode($_POST['data'], true);
Salin selepas log masuk

Dalam kod di atas, kami menggunakan $_POST['data'] untuk mendapatkan data yang disimpan dalam medan tersembunyi Rentetan JSON bersiri kemudiannya dinyahsiri menjadi tatasusunan bersekutu menggunakan fungsi json_decode().

Adalah penting untuk ambil perhatian bahawa kita perlu menetapkan parameter kedua kepada benar untuk menukar hasil menjadi tatasusunan bersekutu.

Contoh Demonstrasi

Untuk lebih memahami prinsip dan pelaksanaan tatasusunan pemindahan medan tersembunyi, di bawah kami menyediakan contoh demonstrasi. Contoh ini ialah sistem papan mesej ringkas Selepas pengguna meninggalkan mesej, kandungan mesej disimpan dalam pangkalan data MySQL dan senarai mesej dipaparkan pada halaman.

Pertama, mari kita lihat kod bahagian hadapan, yang bertanggungjawab untuk memberikan borang mesej dan senarai mesej:

<!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>
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan borang di mana pengguna boleh memasukkan nama mereka dan Tinggalkan mesej dan klik butang "Serah" untuk menghantar borang. Dalam borang, kami mentakrifkan medan tersembunyi untuk lulus parameter baris arahan "tindakan" untuk memberitahu latar belakang operasi yang ingin kami lakukan. Di sini, kami menetapkan "tindakan" kepada "tambah", menunjukkan bahawa kami ingin menambah mesej baharu.

Selepas borang diserahkan, kami perlu menghantar nama dan kandungan mesej yang dimasukkan oleh pengguna ke pelayan untuk diproses. Logik pemprosesan khusus dilaksanakan dalam kod PHP latar belakang.

Berikut ialah kod bahagian belakang untuk mengendalikan operasi menambah dan membaca ulasan:

<?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();
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menyambung ke pangkalan data MySQL dan menyemak sama ada sambungan berjaya . Kemudian, berdasarkan parameter "tindakan" yang diserahkan, tentukan operasi yang ingin dilakukan oleh pengguna.

Jika parameter "tindakan" ialah "tambah", ini bermakna pengguna ingin menambah mesej baharu. Kami mendapat nama dan kandungan mesej yang dimasukkan oleh pengguna daripada tatasusunan $_POST, dan kemudian gunakan pernyataan sisipan untuk menulis kandungan mesej ke dalam pangkalan data MySQL.

Jika parameter "tindakan" ialah "baca", ini bermakna pengguna ingin membaca senarai mesej. Kami menanyakan semua rekod mesej daripada pangkalan data MySQL dan menyimpan hasilnya dalam tatasusunan $messages bersekutu.

Akhir sekali, kami menutup sambungan ke pangkalan data MySQL dan menghantar tatasusunan $messages ke kod bahagian hadapan supaya pengguna dapat melihat senarai mesej.

Kesimpulan

Melalui contoh demonstrasi di atas, kita boleh melihat cara menggunakan medan tersembunyi untuk menghantar tatasusunan. Dalam pembangunan web harian, kita selalunya perlu menghantar beberapa data ke latar belakang untuk diproses pada masa yang sama tanpa input atau paparan pengguna. Menggunakan medan tersembunyi boleh mencapai fungsi ini dengan baik, dan menggunakan tatasusunan boleh meningkatkan fleksibiliti pemindahan data, menjadikan program kami lebih mudah untuk dibangunkan dan diselenggara.

Atas ialah kandungan terperinci Bagaimana untuk menghantar tatasusunan melalui medan tersembunyi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan