Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penjelasan terperinci tentang cara melaksanakan skrip PHP tanpa melompat halaman

Penjelasan terperinci tentang cara melaksanakan skrip PHP tanpa melompat halaman

PHPz
PHPzasal
2023-03-29 11:31:091046semak imbas

Dalam pembangunan web, kita selalunya perlu menggunakan skrip PHP untuk melaksanakan fungsi tertentu, seperti pengesahan log masuk pengguna, penyerahan data borang, dsb. Walau bagaimanapun, apabila melaksanakan skrip PHP ini, lompatan halaman selalunya akan berlaku, yang tidak mesra kepada pengalaman pengguna dan juga akan menjejaskan prestasi laman web. Jadi bagaimana saya boleh melaksanakan skrip PHP tanpa melompat ke halaman? Artikel ini akan memperkenalkan anda kepada beberapa cara untuk mencapai matlamat ini.

1. Gunakan teknologi Ajax

Teknologi Ajax boleh menghantar permintaan ke pelayan secara tidak segerak dan mengemas kini kandungan halaman tanpa memuat semula halaman. Oleh itu, teknologi Ajax boleh digunakan untuk melaksanakan skrip PHP tanpa melompat ke halaman. Kaedah operasi khusus adalah seperti berikut:

  1. Perkenalkan perpustakaan jQuery ke dalam halaman HTML:
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  1. Tulis kod Ajax:
$.ajax({
    url: 'test.php',  // PHP脚本的URL地址
    type: 'post',  // 请求方式
    data: {name: 'John', age: 18},  // 发送给服务器的数据
    success: function(response){  
        // 成功接收到服务器的响应后执行的代码 
        alert(response);  // 显示服务器返回的数据
    }
});

Dalam contoh ini, kami menghantar permintaan POST ke skrip PHP bernama test.php dan menghantar dua parameter (nama dan umur) ke pelayan. Jika pelayan berjaya mengendalikan permintaan, ia akan mengembalikan beberapa data, yang boleh kita perolehi dalam fungsi panggil balik Ajax.

2. Gunakan teg iframe

Teg iframe boleh membenamkan halaman HTML yang lain ke dalam iframe adalah untuk mendapatkan hasil pelaksanaan. Kaedah operasi khusus adalah seperti berikut:

  1. Tambahkan teg iframe pada halaman HTML:
<iframe id="php-process" name="php-process" style="display:none;"></iframe>
  1. Tambahkan borang borang pada halaman HTML:
<form id="php-form" method="post" action="test.php" target="php-process">
    <!-- 在这里添加需要传递给PHP脚本的参数 -->
    <input type="hidden" name="name" value="John" />
    <input type="hidden" name="age" value="18" />
</form>
  1. Gunakan JavaScript untuk menyerahkan borang dan menerima keputusan pelaksanaan:
function submitForm(){
    document.getElementById("php-form").submit();  // 提交form表单
    var iframe = document.getElementById("php-process");
    iframe.onload = function(){
        // PHP脚本执行完毕后执行的代码
        alert(iframe.contentWindow.document.body.innerHTML);  // 获取执行结果
    }
}

Di sini, kami mentakrifkan fungsi submitForm, apabila fungsi dipanggil Apabila iframe dimuatkan, borang akan diserahkan secara automatik dan hasil pelaksanaan akan diperoleh selepas iframe dimuatkan. Perlu diingatkan bahawa atribut paparan iframe mesti ditetapkan kepada tiada, jika tidak, ia akan menjejaskan reka letak halaman.

3. Menggunakan objek XMLHttpRequest

XMLHttpRequest ialah objek JavaScript yang digunakan untuk menghantar data antara penyemak imbas dan pelayan. Anda boleh menggunakan XMLHttpRequest untuk menghantar permintaan kepada pelayan dan mendapatkan hasil pelaksanaan, dan kemudian mengemas kini kandungan halaman tanpa memuat semula halaman. Kaedah operasi khusus adalah seperti berikut:

  1. Cipta objek XMLHttpRequest:
var xmlhttp;
if (window.XMLHttpRequest){  
    // code for IE7+, Firefox, Chrome, Opera, Safari  
    xmlhttp = new XMLHttpRequest();  
}
else{  
    // code for IE6, IE5  
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
}
  1. Hantar permintaan ke pelayan:
xmlhttp.open("POST","test.php",true);  // 向test.php发送一个POST请求
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");  // 设置请求头
xmlhttp.send("name=John&age=18");  // 发送请求的数据

Di sini, kami menggunakan permintaan POST dan menghantar dua parameter (nama dan umur) ke pelayan. Perlu diingatkan bahawa kami juga perlu menetapkan pengepala permintaan untuk memastikan pelayan dapat menghuraikan data yang dihantar dengan betul.

  1. Terima respons daripada pelayan:
xmlhttp.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200){
        // 成功接收到服务器的响应后执行的代码
        alert(this.responseText);  // 显示服务器返回的数据
    }
}

Di sini, kami menggunakan fungsi panggil balik untuk menerima respons daripada pelayan. Apabila readyState ialah 4 dan status ialah 200, ia bermakna pelayan telah mengembalikan data respons Kita boleh mendapatkan data dalam fungsi panggil balik dan memaparkannya pada halaman.

Ringkasan

Di atas ialah beberapa cara untuk melaksanakan skrip PHP tanpa melompat ke halaman. Perlu diingatkan bahawa untuk beberapa operasi yang melibatkan maklumat sensitif seperti akaun pengguna dan kata laluan, langkah yang lebih selamat harus diambil untuk melindungi maklumat pengguna. Contohnya, tambahkan mekanisme pengesahan keselamatan pada skrip PHP supaya hanya pengguna yang disahkan boleh melaksanakan skrip tersebut.

Atas ialah kandungan terperinci Penjelasan terperinci tentang cara melaksanakan skrip PHP tanpa melompat 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