Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah saya boleh menggunakan AJAX dan PHP untuk menghantar berbilang input borang dengan cekap ke pangkalan data tanpa muat semula halaman?

Bagaimanakah saya boleh menggunakan AJAX dan PHP untuk menghantar berbilang input borang dengan cekap ke pangkalan data tanpa muat semula halaman?

Linda Hamilton
Lepaskan: 2024-12-04 07:02:10
asal
485 orang telah melayarinya

How can I use AJAX and PHP to efficiently submit multiple form inputs to a database without page refresh?

AJAX dan PHP untuk Memasukkan Berbilang Input Borang ke dalam Pangkalan Data

Dalam artikel ini, kami akan meneroka cara menggunakan AJAX dan PHP untuk masuk berbilang input bentuk ke dalam pangkalan data. Memandangkan anda baru menggunakan AJAX, tumpuan kami adalah untuk memahami konsep dan aplikasi AJAX dalam konteks ini.

Untuk bermula, mari pertimbangkan contoh borang berikut yang dijana dalam PHP:

<?php

   echo "<form method='post'>";

   $i=1;

    while($i <= $num_to_enter){

    $form_output .= "First Name:

    <input>
Salin selepas log masuk

Borang ini menjana berbilang set medan input secara dinamik berdasarkan pemilihan pengguna ('$num_to_enter'). Matlamat kami ialah menggunakan AJAX untuk menghantar data daripada medan input ini ke skrip PHP untuk sisipan pangkalan data.

Mengenai fungsi AJAX yang anda berikan, isu utama adalah dengan penggunaan aksara '&' yang salah apabila menggabungkan rentetan data. Selain itu, gelung 'semasa' di luar panggilan AJAX mengakibatkan penghantaran data kosong.

Berikut ialah versi diperbetulkan fungsi AJAX:

function MyFunction(){

  var i = 1;
  var x = $('#num_to_enter').val(); // Get the number of form sets

  var dataString = ''; // Initialize an empty data string

  // Iterate through the number of form sets
  while (i <= x){

    // Concatenate the data string using JavaScript's += operator
    dataString += "fname[" + i + "]=" + $('#fname[' + i + ']').val() + "&";
    dataString += "lname[" + i + "]=" + $('#lname[' + i + ']').val() + "&";
    dataString += "email[" + i + "]=" + $('#email[' + i + ']').val() + "&";

    i++;
  }

  // Remove the trailing '&' character from the data string
  dataString = dataString.substr(0, dataString.length - 1);

  // Send the data via AJAX to the 'process.php' script
  $.ajax({
    url: 'process.php', 
    type: 'POST', 
    data: dataString, // The concatenated data string is passed here
    success: function(data){

      // Handle the response from 'process.php'
      // Your code goes here
    },
    complete: function(){
      // Perform tasks after the AJAX request is complete
      // Your code goes here
    }
  });
}
Salin selepas log masuk

Dalam fungsi yang diperbetulkan ini, kami menggabungkan dengan sewajarnya data ke dalam rentetan tunggal ('dataString') dan hantarkannya sebagai parameter 'data' dalam AJAX call.

Untuk skrip PHP ('process.php'), kita boleh mempunyai sesuatu seperti ini:

<?php
  if($_SERVER['REQUEST_METHOD'] === 'POST') {

    // Parse the data from the POST request
    parse_str($_POST['data'], $formData);

    // Extract the individual data sets
    $fnames = $formData['fname'];
    $lnames = $formData['lname'];
    $emails = $formData['email'];

    // Initialize the success flag
    $success = true;

    // Perform the database insertions
    for ($i = 0; $i < count($fnames); $i++) {

      // Insert into database
      // ...

      // Check if any insertion failed
      if(!...){
        $success = false;
        break;
      }
    }

    // Return the success flag as JSON
    echo json_encode(array('success' => $success));
  }
?>
Salin selepas log masuk

Dalam skrip PHP ini, kami menghuraikan data POST, mengekstrak individu set data, dan gelung melaluinya untuk melaksanakan sisipan pangkalan data. Jika mana-mana sisipan gagal, bendera 'kejayaan' ditetapkan kepada palsu. Akhir sekali, kami mengembalikan bendera 'kejayaan' sebagai JSON kepada panggilan AJAX.

Pendekatan ini membolehkan anda menyerahkan berbilang set borang secara tidak segerak melalui AJAX dan mengendalikan sisipan pangkalan data dalam skrip PHP, memberikan pengalaman pengguna yang lebih lancar tanpa menyegarkan halaman.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan AJAX dan PHP untuk menghantar berbilang input borang dengan cekap ke pangkalan data tanpa muat semula halaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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