Rumah >pembangunan bahagian belakang >masalah PHP >PHP melaksanakan penyerahan borang tetapi tidak melompat

PHP melaksanakan penyerahan borang tetapi tidak melompat

PHPz
PHPzasal
2023-03-29 10:09:501219semak imbas

Dalam pembangunan web, borang (Borang) adalah elemen yang sangat kritikal. Melalui borang, pengguna boleh menghantar data ke pelayan. Dalam banyak permohonan, borang akan melompat ke halaman lain selepas penyerahan Ini boleh memaparkan hasil penyerahan dengan baik, tetapi kadangkala kita perlu menyerahkan borang tanpa melompat. Artikel ini akan memperkenalkan cara melaksanakan penyerahan borang PHP tanpa melompat.

1. Serahkan borang menggunakan AJAX

AJAX ialah singkatan daripada Asynchronous JavaScript dan XML, yang membolehkan penyemak imbas menghantar permintaan ke pelayan secara tidak segerak dan menerima respons. Dengan menggunakan teknologi AJAX, kami boleh menyerahkan borang tanpa memuat semula halaman dan memaparkan data yang dikembalikan oleh pelayan pada halaman secara dinamik.

Berikut ialah kod HTML borang, yang mengandungi kotak input nama pengguna dan kata laluan dan butang hantar:

<form id="login-form" method="post" action="">
  <label for="username">用户名:</label>
  <input type="text" id="username" name="username">
  
  <label for="password">密码:</label>
  <input type="password" id="password" name="password">
  
  <button type="submit" id="submit-btn">提交</button>
</form>

Seterusnya, kita perlu menggunakan kod JavaScript untuk menangkap penyerahan acara borang , dan kemudian gunakan teknologi AJAX untuk menghantar data borang ke pelayan. Dalam kes ini, kami menggunakan perpustakaan jQuery untuk memudahkan kod.

$(document).ready(function() {
  $('#login-form').submit(function(event) {
    // 阻止表单默认提交行为
    event.preventDefault();
  
    // 通过AJAX提交表单数据
    $.ajax({
      type: 'POST',
      url: 'login.php',
      data: $('#login-form').serialize(),
      success: function(data) {
        // 处理服务器返回的数据
        alert('登录成功!');
      }
    });
  });
});

Dalam kod di atas, kita perlu menghalang kelakuan penyerahan lalai borang terlebih dahulu. Kami kemudian menggunakan kaedah $.ajax() untuk menghantar data borang ke pelayan. Kaedah $.ajax() menerima objek JavaScript sebagai parameter, yang mengandungi maklumat seperti jenis permintaan, URL, data dan fungsi panggil balik.

2. Gunakan iframe tersembunyi untuk menyerahkan borang

Selain menggunakan teknologi AJAX, kami juga boleh menggunakan teknologi iframe tersembunyi untuk menyerahkan borang dan memaparkan hasil yang dikembalikan oleh pelayan pada yang sama muka surat.

Berikut ialah kod HTML borang, yang mengandungi kotak input nama pengguna dan kata laluan dan butang hantar:

<form id="login-form" method="post" action="login.php" target="login-iframe">
  <label for="username">用户名:</label>
  <input type="text" id="username" name="username">
  
  <label for="password">密码:</label>
  <input type="password" id="password" name="password">
  
  <button type="submit" id="submit-btn">提交</button>
</form>

<iframe name="login-iframe" id="login-iframe" style="display:none;"></iframe>

Dalam borang, kami menetapkan sasaran sebagai "log masuk- iframe " untuk menyembunyikan elemen iframe dan menetapkan atribut sasaran borang kepada nama iframe. Apabila pengguna menyerahkan borang, data borang diserahkan kepada URL yang ditentukan dan diproses dalam iframe tersebut.

Seterusnya, kita perlu menggunakan kod JavaScript untuk menangkap acara penyerahan borang dan mengubah halanya ke dalam iframe tersembunyi.

$(document).ready(function() {
  $('#login-form').submit(function() {
    // 将表单的action属性替换掉iframe的src属性
    $('#login-iframe').attr('src', $('#login-form').attr('action'));
    return false;
  });
});

function loginSuccess() {
  // 处理服务器返回的数据
  alert('登录成功!');
}

Dalam kod di atas, kami menyerahkan data borang kepada pelayan dengan menggantikan atribut action borang dengan atribut src iframe tersembunyi. Memandangkan penyerahan borang boleh dilakukan dalam iframe, kami boleh mengembalikan data daripada pelayan dan memaparkannya dalam iframe. Dalam data yang dikembalikan, kita boleh memanggil fungsi loginSuccess() melalui JavaScript untuk memproses data yang dikembalikan oleh pelayan.

Ringkasan

Di atas memperkenalkan dua kaedah untuk melaksanakan penyerahan borang PHP tanpa melompat Antaranya, kaedah yang dilaksanakan oleh teknologi AJAX akan lebih mudah dan mudah dikembangkan, tetapi ia memerlukan kemahiran JavaScript tertentu . Walaupun lebih mudah untuk menyerahkan borang menggunakan teknologi iframe tersembunyi, ia mungkin mempunyai risiko keselamatan tertentu, jadi ia perlu digunakan dengan berhati-hati.

Dalam pembangunan sebenar, kita boleh memilih kaedah yang sesuai dengan kita mengikut keperluan kita. Tidak kira kaedah yang digunakan, untuk memastikan keselamatan aplikasi, kami mengesyorkan pengesahan dan penapisan data borang yang ketat.

Atas ialah kandungan terperinci PHP melaksanakan penyerahan borang tetapi tidak melompat. 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