Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich AJAX und PHP verwenden, um mehrere Formulareingaben effizient und ohne Seitenaktualisierung an eine Datenbank zu übermitteln?

Wie kann ich AJAX und PHP verwenden, um mehrere Formulareingaben effizient und ohne Seitenaktualisierung an eine Datenbank zu übermitteln?

Linda Hamilton
Freigeben: 2024-12-04 07:02:10
Original
485 Leute haben es durchsucht

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

AJAX und PHP zur Eingabe mehrerer Formulareingaben in eine Datenbank

In diesem Artikel erfahren Sie, wie Sie AJAX und PHP zur Eingabe verwenden mehrere Formulareingaben in eine Datenbank. Da Sie neu bei AJAX sind, liegt unser Fokus auf dem Verständnis der Konzepte und der Anwendung von AJAX in diesem Zusammenhang.

Betrachten wir zunächst das folgende in PHP generierte Beispielformular:

<?php

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

   $i=1;

    while($i <= $num_to_enter){

    $form_output .= "First Name:

    <input>
Nach dem Login kopieren

Dieses Formular generiert dynamisch mehrere Sätze von Eingabefeldern basierend auf der Benutzerauswahl („$num_to_enter“). Unser Ziel ist es, AJAX zu verwenden, um die Daten aus diesen Eingabefeldern zur Datenbankeinfügung an ein PHP-Skript zu senden.

Was die von Ihnen bereitgestellte AJAX-Funktion betrifft, besteht das Hauptproblem in der falschen Verwendung des Zeichens „&“. Verkettung der Datenstrings. Darüber hinaus führt die „while“-Schleife außerhalb des AJAX-Aufrufs zum Senden leerer Daten.

Hier ist eine korrigierte Version der AJAX-Funktion:

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
    }
  });
}
Nach dem Login kopieren

In dieser korrigierten Funktion verketten wir entsprechend die Daten in einen einzelnen String ('dataString') umwandeln und ihn als 'data'-Parameter im AJAX-Aufruf übergeben.

Für die PHP-Skript ('process.php') können wir so etwas haben:

<?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));
  }
?>
Nach dem Login kopieren

In diesem PHP-Skript analysieren wir die POST-Daten, extrahieren die einzelnen Datensätze und durchlaufen sie, um eine Datenbank auszuführen Einfügungen. Wenn eine Einfügung fehlschlägt, wird das „Erfolgs“-Flag auf „false“ gesetzt. Schließlich geben wir das „Erfolgs“-Flag als JSON an den AJAX-Aufruf zurück.

Dieser Ansatz ermöglicht es Ihnen, mehrere Formularsätze asynchron über AJAX zu übermitteln und die Datenbankeinfügungen im PHP-Skript zu verarbeiten, was für eine reibungslosere Benutzererfahrung ohne sorgt Aktualisierung der Seite.

Das obige ist der detaillierte Inhalt vonWie kann ich AJAX und PHP verwenden, um mehrere Formulareingaben effizient und ohne Seitenaktualisierung an eine Datenbank zu übermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage