Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknologi anti goncang PHP: memastikan ketepatan dan keberkesanan penyerahan borang

Teknologi anti goncang PHP: memastikan ketepatan dan keberkesanan penyerahan borang

WBOY
WBOYasal
2023-10-12 08:27:20682semak imbas

PHP 防抖技术:确保表单提交的准确性和有效性

Teknologi Anti Goncang PHP: Pastikan ketepatan dan keberkesanan penyerahan borang

Dengan perkembangan Internet, penyerahan borang memainkan peranan penting dalam aplikasi web. Walau bagaimanapun, disebabkan kelewatan rangkaian atau salah operasi pengguna, data borang mungkin dihantar berulang kali, mengakibatkan data tidak tepat atau pelaksanaan program yang tidak normal. Untuk menyelesaikan masalah ini, kami boleh menggunakan teknologi anti goncang PHP untuk memastikan ketepatan dan keberkesanan penyerahan borang.

Apakah teknologi anti goncang?

Teknologi anti goncang ialah strategi yang hanya melaksanakan kod sekali dalam selang masa tertentu. Apabila tindakan penyerahan borang berlaku, kita boleh menetapkan pemasa anti goncang dan kod penyerahan hanya akan dilaksanakan selepas masa pemasa tamat. Jika tindakan penyerahan dicetuskan semula sebelum pemasa tamat tempoh, pemasa akan ditetapkan semula dan kod untuk penyerahan berulang tidak akan dilaksanakan.

Bagaimana menggunakan PHP untuk melaksanakan teknologi anti-goncang?

Di bawah ini kami akan menggunakan contoh khusus untuk menggambarkan cara menggunakan PHP untuk melaksanakan teknologi anti goncang. Katakan kita mempunyai borang di mana pengguna perlu mengisi nama dan alamat e-mel mereka dan klik butang hantar untuk menyimpan maklumat. Kita perlu memastikan bahawa selepas pengguna mengklik butang, data akan disimpan ke pangkalan data hanya jika mereka tidak mengkliknya sekali lagi untuk tempoh masa.

Pertama, kita perlu mentakrifkan fail PHP baharu, bernama form_submit.php, dan tulis kod berikut dalam fail:

<?php
// 连接数据库
$mysqli = new mysqli("localhost", "username", "password", "database");

// 检测连接是否成功
if ($mysqli->connect_error) {
    die("连接失败: " . $mysqli->connect_error);
}

// 获取POST数据
$name = $_POST['name'];
$email = $_POST['email'];

// 查询是否有相同的记录
$query = "SELECT * FROM users WHERE name = '$name' AND email = '$email'";
$result = $mysqli->query($query);

if ($result->num_rows > 0) {
    // 记录已存在,返回错误信息
    echo "记录已存在";
} else {
    // 插入新记录
    $insert = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
    $mysqli->query($insert);
    echo "记录保存成功";
}

// 关闭数据库连接
$mysqli->close();
?>

Dalam fail HTML, kita perlu menambah borang dan kod JavaScript yang sepadan untuk mencapai anti- Fungsi goncang. Contohnya:

<form id="myForm" action="form_submit.php" method="POST">
    <input type="text" name="name" required>
    <input type="email" name="email" required>
    <button type="submit" id="submitButton">提交</button>
</form>

<script>
    var form = document.getElementById("myForm");
    var submitButton = document.getElementById("submitButton");
    var debounceTimer = null;

    form.addEventListener("submit", function(e) {
        e.preventDefault(); // 取消默认的表单提交行为

        if (debounceTimer) {
            clearTimeout(debounceTimer);
        }

        debounceTimer = setTimeout(function() {
            form.submit(); // 延迟提交表单
        }, 1000); // 设置延迟时间,单位为毫秒
    });
</script>

Dalam kod di atas, kami menangkap tindakan penyerahan dengan menambahkan pendengar acara serah pada borang. Apabila pengguna mengklik butang hantar, masa tunda ditetapkan melalui fungsi setTimeout, di sini ia ditetapkan kepada 1 saat. Jika pengguna mengklik butang hantar sekali lagi dalam masa 1 saat, pemasa yang ditetapkan sebelum ini akan dikosongkan dan ditetapkan semula untuk mencapai kesan anti-goncang. Hanya jika tiada klik sekali lagi dalam masa 1 saat, data borang akan dihantar ke fail form_submit.php.

Dengan cara ini, kami telah berjaya melaksanakan teknologi anti goncang untuk memastikan ketepatan dan keberkesanan penghantaran borang. Dengan menggunakan gabungan PHP dan JavaScript, anda boleh mengelakkan penyerahan data borang berulang, memastikan ketepatan data dan memberikan pengalaman pengguna yang lebih baik.

Atas ialah kandungan terperinci Teknologi anti goncang PHP: memastikan ketepatan dan keberkesanan penyerahan borang. 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