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>
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 } }); }
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)); } ?>
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!