Bonjour,
Je souhaite insérer des données via AJAX dans une base de données MySQL.
Code javascript :
Code PHP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 function saveMapping(){ var session = "<?php echo $_SESSION['user_id']; ?>"; var input = document.getElementById('fileUpload'); // get the input var fichier = input.files[0]; const listItems = document.querySelectorAll(".zone-groupe ul"); var i = 0; for (i = 0; i < listItems.length; i++) { var ulID = oElems[i].id; var value = listItems[i].textContent; //alert(session+fichier+ulID+value); insertMapping(session, fichier, ulID, value); } } function insertMapping(session, fichier, ulID, value){ $.ajax({ url: "./php/insert_mapping.php", type: "POST", data: { USER: session, FICHIER: fichier, UL_ELEMENT: ulID, UL_VALUE: value }, processData: false, contentType: false, }); }
Si je n'ai qu'une ligne à insérer et que les insert ne sont pas faits dans la boucle FOR, alors l'insertion fonctionne correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php include("../authent/config.php"); $user = $_POST['USER']; $fichier = $_POST['FICHIER']; $ul_element = $_POST['UL_ELEMENT']; $ul_value = $_POST['UL_VALUE']; $sql = "INSERT INTO MAPPING (USER, FICHIER, UL_ELEMENT, UL_VALUE) VALUES ('$user', '$fichier', '$ul_element', '$ul_value')"; $stmt = $pdo->prepare($sql); $result = $stmt->execute(); echo json_encode(array("statusCode"=>200)); ?>
Depuis que j'ai mis cette insertion dans une boucle FOR, des lignes vides sont insérées (toutes les colonnes sont vides).
De plus, j'ai les erreurs ci-dessous dans la console java
Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received
Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received
J'ai également essayé avec ces méthodes mais ça ne veut pas fonctionner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function functABC(){ $.ajax({ url: 'myPage.php', data: {id: id}, success: function(data) { return data; }, complete: function(){ // do the job here } }); } var response = functABC();Est-ce que quelqu'un pourrait m'aider à sortir de ces problèmes ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function functABC(){ $.ajax({ url: 'myPage.php', data: {id: id}, async: false, success: function(data) { return data; } }); // do the job here }
Merci beaucoup
Partager