Rumah > hujung hadapan web > tutorial js > Gunakan Ajax dan PHP untuk membina senarai mel anda

Gunakan Ajax dan PHP untuk membina senarai mel anda

William Shakespeare
Lepaskan: 2025-03-08 00:34:14
asal
149 orang telah melayarinya

Use AJAX and PHP to Build your Mailing List

Keindahan persediaan ini ialah struktur halaman itu benar-benar terpencil dari fungsinya, yang menjadikan pembangunan dan penyelenggaraan bebas kerumitan.

menggunakan Ajax untuk menyampaikan alamat

Di dalam folder JS, di samping fail prototype.js, adalah fail yang dipanggil mailinglist.js. Fail ini mengandungi kod yang memacu fungsi AJAX khusus untuk halaman ini. Item pertama perniagaan kami dalam fail ini adalah untuk menambah pendengar acara ke acara penyerahan elemen borang, yang akan mencetuskan panggilan AJAX ke pelayan. Walau bagaimanapun, kita tidak boleh melakukan ini secara langsung - kita perlu menunggu sehingga halaman dimuatkan, yang ditandakan oleh acara beban objek tetingkap.

Untuk menambah pendengar acara ini, kami akan menggunakan kaedah memerhati prototaip yang mudah. Kami mula -mula menambah pendengar untuk acara beban halaman. Di dalam pendengar ini, kami melampirkan pendengar acara ke acara penyerahan borang kami:

// Attach handler to window load event <br>
Event.observe(window, 'load', init, false); <br>
 <br>
function init() { <br>
  // Attach handler to form's submit event <br>
  Event.observe('addressForm', 'submit', storeAddress); <br>
}
Salin selepas log masuk
Salin selepas log masuk

Perhatikan bahawa pendengar acara untuk borang kami akan memanggil fungsi JavaScript StoreAddress apabila borang diserahkan. Fungsi StoreAddress ini mengandungi JavaScript untuk membuat panggilan AJAX ke skrip PHP kami. Inilah yang kelihatan seperti:

function storeAddress(e) { <br>
  // Update user interface <br>
  $('response').innerHTML = 'Adding email address...'; <br>
  // Prepare query string and send AJAX request <br>
  var pars = 'address=' + escape($F('address')); <br>
  var myAjax = new Ajax.Updater('response', 'ajaxServer.php', {method: 'get', parameters: pars}); <br>
  // Stop form from submitting when JavaScript is enabled <br>
  Event.stop(e); <br>
}
Salin selepas log masuk
Salin selepas log masuk

Fungsi ini sangat mudah. Ia bermula dengan membiarkan pengguna bahawa sesuatu sedang berlaku dengan memaparkan mesej "menambah alamat e -mel ...". Seterusnya, kami mengumpulkan maklumat dari borang sebagai persediaan untuk menghantar permintaan AJAX. Perhatikan bagaimana kita mengakses kandungan medan teks menggunakan fungsi $ F Prototaip, yang merebut nilai elemen bentuk yang diberikan apabila dibekalkan dengan ID elemen bentuk itu. Kami menggunakan fungsi melarikan diri JavaScript untuk menukar input pengguna ke format Unicode; Dengan cara ini, URLnya bersedia untuk penghantaran ke skrip PHP melalui kaedah GET.

kemudian datang bahagian yang paling penting dalam fungsi ini: penciptaan objek Ajax.updater baru. Apabila kita membuat objek Ajax.updater, kita lulus beberapa parameter, termasuk:

    id elemen di mana anda ingin menunjukkan respons dari pelayan

  1. URL skrip php

  2. data yang anda mahu hantar ke skrip sisi pelayan, dan kaedah penghantaran (iaitu pos atau mendapatkan)
AJAX.Updater akan menghantar alamat e -mel ke pelayan dan tunggu dengan sabar untuk respons. Apabila ia menerima respons, ia akan memaparkannya sebagai pengganti mesej "Menambah Alamat E -mel ..." yang kami masukkan pada permulaan kaedah. Akhirnya, kami memanggil Event.Stop (fungsi lain yang dibekalkan oleh Perpustakaan Prototaip) untuk menghentikan borang daripada sebenarnya diserahkan kepada pelayan.

Sediakan pangkalan data senarai mel anda
Sebelum kita boleh menulis mana -mana PHP untuk menyimpan alamat e -mel, kita memerlukan tempat untuk meletakkannya. SQL ini akan membina meja bernama MailingList untuk anda:

// Attach handler to window load event <br>
Event.observe(window, 'load', init, false); <br>
 <br>
function init() { <br>
  // Attach handler to form's submit event <br>
  Event.observe('addressForm', 'submit', storeAddress); <br>
}
Salin selepas log masuk
Salin selepas log masuk

Termasuk dalam arkib Kod adalah fail PHP yang dipanggil createTable.php, yang akan membuat jadual ini untuk anda. Walau bagaimanapun, sebelum anda menjalankan fail ini, anda perlu mengemas kini fail dbconstants.php dengan butiran pangkalan data MySQL anda. Saya cadangkan anda mengemas kini fail ini sekarang, kerana kami akan menggunakan pemalar ini di bahagian seterusnya.

menyimpan alamat e -mel

kami telah menetapkan segala -galanya untuk menyampaikan alamat ke pelayan; Sekarang PHP akan menyelesaikan proses dengan menyimpan alamat dalam pangkalan data anda dan mengembalikan rentetan ke objek Ajax kami untuk menunjukkan kejayaan atau kegagalan. Mari kita lihat fail ajaxserver.php yang mana alamat e -mel dihantar.

function storeAddress(e) { <br>
  // Update user interface <br>
  $('response').innerHTML = 'Adding email address...'; <br>
  // Prepare query string and send AJAX request <br>
  var pars = 'address=' + escape($F('address')); <br>
  var myAjax = new Ajax.Updater('response', 'ajaxServer.php', {method: 'get', parameters: pars}); <br>
  // Stop form from submitting when JavaScript is enabled <br>
  Event.stop(e); <br>
}
Salin selepas log masuk
Salin selepas log masuk

Skrip PHP yang sangat mudah ini memanggil fungsi yang dipanggil StoreAddress dan kembali ke objek Ajax mesej yang dikembalikan oleh StoreAddress. Berkomunikasi dengan objek Ajax adalah semudah mencetak rentetan.

Perkara pertama StoreAddress tidak memulakan pembolehubah yang dipanggil $ mesej ke ruang yang tidak pecah. Kemudian, ia memastikan skrip telah menerima alamat e -mel dalam rentetan pertanyaan. Sekiranya tidak, kami akan meninggalkan pembolehubah mesej $ yang ditetapkan sebagai ruang yang tidak pecah. mesej $ akan dikembalikan kepada pemanggil pada akhir fungsi ini.

CREATE TABLE `mailinglist` ( <br>
  `id` INT NOT NULL AUTO_INCREMENT , <br>
  `email` TEXT NOT NULL , <br>
  PRIMARY KEY ( `id` ) <br>
);
Salin selepas log masuk

Sebaik sahaja kami pasti kami mempunyai alamat e -mel untuk bekerja, kami ingin memastikan ia adalah alamat yang sah. Kami akan menggunakan ekspresi biasa untuk mencari beberapa aksara alfanumerik diikuti oleh simbol @, lebih banyak aksara alfanumerik, tempoh, dan beberapa watak alfanumerik. Jika ujian ini gagal, kami akan menetapkan mesej $ ke mesej ralat, memaklumkan kepada pengguna bahawa alamat e -mel yang dimasukkan tidak sah:

<?php <br>
require_once("inc/storeAddress.php"); <br>
echo(storeAddress()); <br>
?>
Salin selepas log masuk

Jika alamat melepasi ujian ini, kami akan menyimpannya dalam pangkalan data. Untuk melakukan ini, kami menyambung ke MySQL, pilih pangkalan data, dan jalankan pertanyaan sisipan kami. Jika alamat disimpan dengan betul, kami menetapkan $ mesej kepada mesej kejayaan; Jika tidak, kami menetapkan mesej $ ke mesej ralat.

function storeAddress() { <br>
  $message = " "; <br>
  // Check for an email address in the query string <br>
  if( !isset($_GET['address']) ){ <br>
    // No email address provided <br>
  }
Salin selepas log masuk

Akhirnya, kami mengembalikan $ mesej ke ajaxserver.php:

  else { <br>
    // Get email address from the query string <br>
    $address = $_GET['address']; <br>
    // Validate Address <br>
    if(!preg_match("/^[_a-z0-9-]+(.[_a-z0-9-]+)*@ <br>
    [a-z0-9-]+(.[a-z0-9-]+)*$/i", $address)) { <br>
      $message = "<strong>Error</strong>: An invalid email address was provided."; <br>
    }
Salin selepas log masuk

Sekarang, muatkan halaman, masukkan alamat e -mel anda, dan serahkan borang - anda harus melihat alamat e -mel anda ditambahkan ke jadual mailinglist tanpa halaman tambah nilai. Walaupun anda melumpuhkan JavaScript, halaman akan berfungsi dengan cara yang sangat serupa, kecuali bukannya memasukkan output StoreAddress ke dalam halaman secara dinamik menggunakan JavaScript, ia dimasukkan terus ke dalam HTML dalam kod PHP halaman.

Ajax benar -benar membuat mendaftar untuk senarai mel anda sekeping kek. Tidak ada menunggu halaman untuk dimuat semula, yang mengganggu pengalaman melayari pelawat anda, dan tidak perlu mengecualikan mereka yang melayari dengan JavaScript dilumpuhkan. Prototaip menjadikan proses membina fungsi Ajax dengan cepat dan tidak menyakitkan, membolehkan anda terus berhubung dengan peminat laman web anda.

Soalan Lazim (Soalan Lazim) Mengenai Menggunakan Ajax dengan PHP Untuk Membina Senarai Mel

Bagaimanakah saya boleh menggunakan Ajax dengan PHP untuk membina senarai mel?

Ajax, yang bermaksud JavaScript dan XML Asynchronous, adalah teknik pembangunan web yang digunakan untuk membuat aplikasi web interaktif. PHP adalah bahasa skrip sisi pelayan yang direka untuk pembangunan web. Apabila digabungkan, Ajax dan PHP boleh digunakan untuk membina senarai mel dengan menghantar data dari borang ke skrip sisi pelayan (PHP) tanpa menyegarkan halaman. Ini dilakukan dengan menggunakan objek XMLHTTPREQUEST dalam AJAX, yang berkomunikasi dengan pelayan dan mengemas kini kandungan halaman secara tidak sengaja. Ia digunakan untuk menghantar dan menerima data dari pelayan secara asynchronously, yang bermaksud bahawa ia menukar data di belakang tabir dengan pelayan, dan mengemas kini bahagian -bahagian laman web tanpa memuatkan semula halaman. Kenyataan ECHO digunakan untuk mengeluarkan satu atau lebih rentetan. Dalam konteks AJAX, pernyataan ECHO boleh digunakan untuk menghantar respons kepada permintaan AJAX. Ia menjadikan perkara-perkara seperti traversal dan manipulasi dokumen HTML, pengendalian acara, dan animasi lebih mudah dengan API yang mudah digunakan yang berfungsi merentasi pelbagai pelayar. Dengan gabungan serba boleh dan kelanjutan, jQuery telah mengubah cara berjuta -juta orang menulis JavaScript. Anda boleh menggunakan kaedah Ajax JQuery untuk menghantar permintaan HTTP yang tidak segerak ke skrip PHP anda. Walau bagaimanapun, anda boleh menggunakan alat pemaju penyemak imbas untuk memeriksa permintaan dan respons AJAX. Anda juga boleh menggunakan fungsi pelaporan ralat PHP untuk menangkap dan mengendalikan kesilapan dalam skrip PHP anda. Kaedah ralat () dipanggil jika permintaan gagal. Fungsi mati () mencetak mesej dan keluar dari skrip semasa.

Bagaimana saya boleh menggunakan Ajax untuk menyerahkan borang ke skrip PHP? Kaedah Pos () menghantar permintaan pos ke pelayan, dan ia boleh menghantar data borang untuk diproses oleh skrip PHP. Ini dilakukan dengan menggunakan kaedah POST () di AJAX, yang menghantar permintaan pos ke pelayan dengan data untuk dikemas kini.

Bagaimana saya boleh menggunakan AJAX untuk mendapatkan data dari pangkalan data menggunakan php?

Anda boleh menggunakan AJAX untuk menghantar permintaan ke skrip PHP untuk mendapatkan data dari pangkalan data. Skrip PHP kemudiannya boleh menghantar respons kepada permintaan AJAX dengan data yang diambil. Skrip PHP kemudian boleh menghantar respons kepada permintaan Ajax untuk mengesahkan bahawa data telah dipadam.

Atas ialah kandungan terperinci Gunakan Ajax dan PHP untuk membina senarai mel anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan