Saya mencoba mengirim data dari formulir ke database. Inilah formulir yang saya gunakan:
<form name="foo" action="form.php" method="POST" id="foo">
<label for="bar">A bar</label>
<input id="bar" name="bar" type="text" value="" />
<input type="submit" value="Send" />
</form>
Pendekatan tipikal adalah mengirimkan formulir, tetapi ini menyebabkan peramban untuk mengarahkan ulang. Menggunakan jQuery dan Ajax , apakah mungkin untuk mengambil semua data formulir dan mengirimkannya ke skrip PHP (contoh, form.php )?
Jawaban:
Penggunaan dasar
.ajax
akan terlihat seperti ini:HTML:
jQuery:
Catatan: Sejak jQuery 1.8
.success()
,,.error()
dan.complete()
tidak digunakan lagi untuk.done()
,.fail()
dan.always()
.Catatan: Ingat bahwa cuplikan di atas harus dilakukan setelah DOM siap, jadi Anda harus memasukkannya ke dalam
$(document).ready()
handler (atau gunakan$()
steno).Tip: Anda dapat rantai penangan callback seperti ini:
$.ajax().done().fail().always();
PHP (yaitu, form.php):
Catatan: Selalu bersihkan data yang diposting , untuk mencegah suntikan dan kode berbahaya lainnya.
Anda juga dapat menggunakan singkatan
.post
di.ajax
dalam kode JavaScript di atas:Catatan: Kode JavaScript di atas dibuat untuk bekerja dengan jQuery 1.8 dan yang lebih baru, tetapi harus bekerja dengan versi sebelumnya hingga jQuery 1.5.
sumber
request
dinyatakan sebagai pembuatan var lokalif (request) request.abort();
tidak pernah berfungsi.serialize()
akan melompati mereka.Untuk membuat permintaan Ajax menggunakan jQuery Anda dapat melakukan ini dengan kode berikut.
HTML:
JavaScript:
Metode 1
Metode 2
The
.success()
,.error()
dan.complete()
callback ditinggalkan pada jQuery 1.8 . Untuk mempersiapkan kode untuk penghapusan akhirnya mereka, menggunakan.done()
,.fail()
dan.always()
sebagai gantinya.MDN: abort()
. Jika permintaan sudah dikirim, metode ini akan membatalkan permintaan.Jadi kami telah berhasil mengirim permintaan Ajax, dan sekarang saatnya mengambil data ke server.
PHP
Saat kami membuat permintaan POST dalam panggilan Ajax (
type: "post"
), kami sekarang dapat mengambil data menggunakan salah satu$_REQUEST
atau$_POST
:Anda juga dapat melihat apa yang Anda dapatkan dalam permintaan POST hanya dengan baik. BTW, pastikan
$_POST
sudah diatur. Kalau tidak, Anda akan mendapatkan kesalahan.Dan Anda memasukkan nilai ke dalam basis data. Pastikan Anda sensitif atau lolos dari semua permintaan (apakah Anda membuat GET atau POST) dengan benar sebelum membuat kueri. Yang terbaik adalah menggunakan pernyataan yang disiapkan .
Dan jika Anda ingin mengembalikan data apa pun ke halaman, Anda dapat melakukannya hanya dengan menggemakan data seperti di bawah ini.
Dan kemudian Anda bisa mendapatkannya seperti:
Ada beberapa metode tulisan cepat . Anda dapat menggunakan kode di bawah ini. Itu melakukan pekerjaan yang sama.
sumber
dataType
), sehingga Anda berpotensi menerima JSON atau format lain?Saya ingin berbagi cara terperinci tentang cara memposting dengan PHP + Ajax bersama dengan kesalahan yang dikembalikan pada kegagalan.
Pertama-tama, buat dua file, misalnya
form.php
danprocess.php
.Kami pertama-tama akan membuat
form
yang kemudian akan dikirim menggunakanjQuery
.ajax()
metode Sisanya akan dijelaskan dalam komentar.form.php
Validasi formulir menggunakan validasi sisi klien jQuery dan berikan data
process.php
.Sekarang kita akan lihat
process.php
File proyek dapat diunduh dari http://projects.decodingweb.com/simple_ajax_form.zip .
sumber
Anda dapat menggunakan cerita bersambung. Di bawah ini adalah contohnya.
sumber
$.parseJSON()
adalah penyelamat total, terima kasih. Saya mengalami kesulitan menafsirkan output saya berdasarkan jawaban yang lain.HTML :
JavaScript :
sumber
Saya menggunakan cara yang ditunjukkan di bawah ini. Ini mengirimkan semuanya seperti file.
sumber
Jika Anda ingin mengirim data menggunakan jQuery Ajax maka tidak perlu tag formulir dan tombol kirim
Contoh:
sumber
sumber
Menangani kesalahan dan pemuat Ajax sebelum mengirim dan setelah mengirim berhasil memperlihatkan kotak boot peringatan dengan contoh:
sumber
Saya menggunakan kode satu baris sederhana ini selama bertahun-tahun tanpa masalah (memerlukan jQuery):
Di sini ap () berarti halaman Ajax dan af () berarti bentuk Ajax. Dalam formulir, cukup memanggil fungsi af () akan memposting formulir ke URL dan memuat respons pada elemen HTML yang diinginkan.
sumber
Dalam file php Anda, masukkan:
dan di file js Anda mengirim ajax dengan objek data
atau simpan apa adanya dengan formulir-kirim. Anda hanya memerlukan ini, jika Anda ingin mengirim permintaan yang dimodifikasi dengan konten tambahan yang dihitung dan tidak hanya beberapa data formulir, yang dimasukkan oleh klien. Misalnya hash, timestamp, userid, sessionid, dan sejenisnya.
sumber
Silakan periksa ini. Ini adalah kode permintaan Ajax lengkap.
sumber
Ini adalah artikel yang sangat bagus yang berisi semua yang perlu Anda ketahui tentang pengiriman formulir jQuery.
Ringkasan artikel:
Form HTML Sederhana Kirim
HTML:
JavaScript:
HTML Multipart / form-data Form Kirim
Untuk mengunggah file ke server, kita bisa menggunakan antarmuka FormData yang tersedia untuk XMLHttpRequest2, yang membangun objek FormData dan dapat dikirim ke server dengan mudah menggunakan jQuery Ajax.
HTML:
JavaScript:
Saya harap ini membantu.
sumber
Sejak diperkenalkannya API Ambil, sebenarnya tidak ada alasan lagi untuk melakukan ini dengan jQuery Ajax atau XMLHttpRequests. Untuk POST form data ke skrip PHP dalam vanilla JavaScript Anda dapat melakukan hal berikut:
Berikut ini adalah contoh yang sangat mendasar dari skrip PHP yang mengambil data dan mengirim email:
sumber