Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Panduan Operasi AJAX dalam PHP

Panduan Operasi AJAX dalam PHP

WBOY
WBOYasal
2023-05-22 08:15:052629semak imbas

Dengan perkembangan teknologi Internet, pembangunan web bahagian hadapan menjadi semakin penting. Dalam pembangunan web, kemunculan JavaScript telah mempercepatkan pelaksanaan banyak interaktiviti dan dinamik. Walau bagaimanapun, JavaScript bukan bahasa back-end dan tidak boleh berinteraksi secara langsung dengan pangkalan data atau sistem fail. Oleh itu, untuk mencapai pembangunan web yang lebih cekap, teknologi AJAX telah diperkenalkan.

AJAX ialah singkatan daripada "Asynchronous JavaScript and XML". Ia menggunakan teknologi seperti JavaScript, XML, HTML dan CSS untuk merealisasikan penghantaran data tak segerak dan boleh berinteraksi dengan pelayan tanpa menyegarkan halaman. Dalam PHP, teknologi AJAX semakin digunakan. Artikel ini akan memberikan penjelasan terperinci tentang operasi AJAX dalam PHP.

1. Interaksi tanpa memuat semula halaman

Dalam aplikasi web, operasi pengguna mungkin memerlukan mendapatkan data daripada pelayan, seperti hasil carian, permintaan tak segerak, penyerahan borang, dsb. Mengambil penyerahan borang sebagai contoh, cara paling mudah ialah menetapkan butang hantar dalam teg f09171dd5a17ba951a950f7c55eddfd5 menjadi Data dihantar ke pelayan supaya pengguna boleh mendapatkan respons yang dikembalikan daripada pelayan. Walau bagaimanapun, kaedah ini memerlukan halaman dimuat semula, menyebabkan kelewatan yang tidak perlu dan menjejaskan pengalaman pengguna.

Untuk mengelakkan situasi ini, kami boleh menggunakan teknologi AJAX untuk melaksanakan penyerahan borang tanpa memuat semula halaman Ini boleh dicapai dengan cara berikut:

<form action="submit.php" method="post">
    ...
    <input type="submit" value="提交">
</form>

Kod di atas mula-mula mencipta XMLHttpRequest. object xhr , dan kemudian gunakan kaedah terbuka untuk menetapkan kaedah permintaan (POST), URL (submit.php) dan penghantaran tak segerak (true). Seterusnya, gunakan kaedah setRequestHeader untuk menetapkan maklumat pengepala jenis Kandungan. Dalam fungsi panggil balik onreadystatechange, kami boleh menentukan status permintaan dan kod status respons untuk memastikan permintaan kembali berjaya. Akhir sekali, gunakan objek FormData untuk mendapatkan data borang dan hantar permintaan melalui kaedah hantar.

2. Gunakan jQuery untuk melaksanakan AJAX

jQuery ialah perpustakaan JavaScript popular yang menyediakan satu siri fungsi dan alatan yang mudah untuk memudahkan operasi AJAX. Dengan jQuery, kami boleh melaksanakan permintaan AJAX dengan mudah. Berikut ialah contoh kod untuk melaksanakan AJAX menggunakan jQuery:

var xhr = new XMLHttpRequest();
xhr.open("POST", "submit.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
    if(xhr.readyState === 4 && xhr.status === 200) {
        document.getElementById("result").innerHTML = xhr.responseText;
    }
};
var formData = new FormData(document.getElementById("form"));
xhr.send(formData);

Kod di atas akan menggunakan kaedah ajax jQuery untuk melaksanakan permintaan AJAX. Sebelum menyerahkan borang, kami menggunakan event.preventDefault() untuk menghalang acara penyerahan borang lalai supaya tidak memuat semula halaman. Seterusnya, tetapkan atribut url kepada submit.php, atribut jenis kepada POST, gunakan objek FormData untuk mendapatkan data borang dan tetapkan atribut processData dan contentType kepada palsu untuk memastikan data borang tidak diproses. Apabila permintaan berjaya, kami boleh melakukan operasi yang sepadan dalam fungsi panggil balik kejayaan. Apabila permintaan gagal, kami boleh mengendalikannya dengan sewajarnya dalam fungsi panggil balik ralat.

3. Akses AJAX kepada data JSON dikembalikan oleh PHP

Apabila permintaan AJAX dibuat kepada PHP, PHP boleh mengembalikan pelbagai jenis data, seperti HTML, XML, JSON dan teks biasa. Dalam PHP, menggunakan JSON untuk pertukaran data menjadi semakin popular, jadi mengembalikan data JSON dalam permintaan AJAX telah menjadi isu penting. Berikut ialah program PHP ringkas yang menunjukkan cara untuk mengembalikan data daripada pangkalan data dalam format JSON:

$("#form").on("submit", function(event) {
    event.preventDefault();
    $.ajax({
        url: "submit.php",
        type: "POST",
        data: new FormData(this),
        processData: false,
        contentType: false,
        success: function(data) {
            $("#result").html(data);
        },
        error: function() {
            alert("请求失败!");
        }
    });
});

Kod di atas menggunakan perpustakaan PDO untuk menyambung ke pangkalan data dan mendapatkan semua data daripada jadual pengguna. Melalui fungsi json_encode, kami menukar data ke dalam format JSON dan mengeluarkannya ke halaman. Kemudian, data boleh diperoleh dan diproses dalam permintaan AJAX:

<?php
    $db = new PDO("mysql:host=localhost;dbname=test", "root", "password");
    $query = $db->prepare("SELECT * FROM users");
    $query->execute();
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode($result);
?>

Kod di atas menggunakan kaedah ajax jQuery untuk mendapatkan data dan menetapkan atribut dataType kepada json. Apabila permintaan berjaya, parameter data akan mengandungi data dalam format JSON dan kami boleh menggunakan kaedah console.log untuk mengeluarkan data. Sudah tentu, kami juga boleh menghuraikan data dan melaksanakan operasi yang sepadan.

Ringkasan

Artikel ini memberikan penjelasan terperinci tentang operasi AJAX dalam PHP. Penggunaan teknologi AJAX bukan sahaja dapat meningkatkan kecekapan dan pengalaman pengguna aplikasi Web, tetapi juga membolehkan pertukaran data yang lebih fleksibel dan mudah. AJAX telah menjadi teknologi pembangunan web yang sangat diperlukan Bagi pembangun PHP, menguasai teknologi AJAX boleh mencapai aplikasi web yang lebih cekap dan dinamik.

Atas ialah kandungan terperinci Panduan Operasi AJAX dalam PHP. 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