Multi insertion en ajax
Résolu
Youn_3451
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
Youn_3451 Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
Youn_3451 Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
Bonjours , je rencontre un probleme concernant une multi insertion en ajax jQuery ect
Dans ma page j'ai plusieurs articles que je veut insérer en même temps.
Ma page consiste a la réalisation d'un avoirs sur facture.
l'avoirs consiste a modifier la quantite d'un azrticle par rapport à la facture en question :
Je m'explique :
Facture - 001
a comme article :
Reference Article cout quantité tva remise typ
E001 kinder 1 1 20% 0% facturevente
E002 coca 2 2 20% 0% facturevente
ect ect
Donc dans la page html avec le form les infos serons pré-remplit
En gros ce que je voudrai c'est que dès que l'utilisateur click sur le bt tout les articles rentre dans ma base de données articles
bdd :
articles
id
article
referencearticle
cout
quantite
tva
remise
numeros //name="numeros"
typ
id_session
Tout les tutos que j'ai regarde c'est different de ce que je veut , dans les vidéos , il y a un input et quand tu appuie sur le bouton ca ajoute l'objets dans un tableau et a la fin du save et ca insert
alors que moi je veut pas faire de table je veut que si jamais j'appuie sur le bt toute les infos du foreach s'insert.
C'est possible ?
Dans ma page j'ai plusieurs articles que je veut insérer en même temps.
Ma page consiste a la réalisation d'un avoirs sur facture.
l'avoirs consiste a modifier la quantite d'un azrticle par rapport à la facture en question :
Je m'explique :
Facture - 001
a comme article :
Reference Article cout quantité tva remise typ
E001 kinder 1 1 20% 0% facturevente
E002 coca 2 2 20% 0% facturevente
ect ect
Donc dans la page html avec le form les infos serons pré-remplit
<?php foreach($articlee as $article): ?> <div class="article"> <input type="text" id="numeros" name="numeros" value=""> // le numeros de l'avoir qui va etre assigner a tout les articles pour ensuite les affichers dans la page visuelle de l'avoirs <input type="text" id="article" name="article" value="<?= $article['article'] ?>" readonly> <input type="text" id="cout" name="cout" value="<?= $article['cout'] ?>" readonly> <input type="text" id="quantite" name="quantite" value="<?= $article['quantite'] ?>"> <input type="text" id="referencearticle" name="referencearticle" value="<?= $article['referencearticle'] ?>"readonly> <input type="text" id="tva" name="tva" value="<?= $article['tva'] ?>"readonly> <input type="text" id="remise" name="remise" value="<?= $article['remise'] ?>"readonly> <button id="button_save">Sauvegarder les articles</button> </div> <?php endforeach; ?>
En gros ce que je voudrai c'est que dès que l'utilisateur click sur le bt tout les articles rentre dans ma base de données articles
bdd :
articles
id
article
referencearticle
cout
quantite
tva
remise
numeros //name="numeros"
typ
id_session
Tout les tutos que j'ai regarde c'est different de ce que je veut , dans les vidéos , il y a un input et quand tu appuie sur le bouton ca ajoute l'objets dans un tableau et a la fin du save et ca insert
alors que moi je veut pas faire de table je veut que si jamais j'appuie sur le bt toute les infos du foreach s'insert.
C'est possible ?
A voir également:
- Multi insertion en ajax
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
8 réponses
Bonjour,
Déjà, ton bouton devrait se trouver en dehors de ta boucle non ? surtout si tu veux que ce bouton insère en bdd toutes les artciles...
Ensuite, ben... il suffit de récupérer les éléments que tu veux insérer en bdd via du javascript
en bouclant sur, tous les inputs se trouvant dans tes div ayant la class article ....et en les mettant dans un "array" javascript
Ensuite, tu peux envoyer cette array au format json via un JSON.stringify(tonarray))
En l'état, il sera difficile de t'aider d'avantage tant que tu n'auras pas commencer à coder un minimum ton javascript ( je ne vais pas le coder à ta place.... encore... )
Donc, commence à coder et reviens nous voir en expliquant sur quel point précis tu bloques.
Déjà, ton bouton devrait se trouver en dehors de ta boucle non ? surtout si tu veux que ce bouton insère en bdd toutes les artciles...
Ensuite, ben... il suffit de récupérer les éléments que tu veux insérer en bdd via du javascript
en bouclant sur, tous les inputs se trouvant dans tes div ayant la class article ....et en les mettant dans un "array" javascript
Ensuite, tu peux envoyer cette array au format json via un JSON.stringify(tonarray))
En l'état, il sera difficile de t'aider d'avantage tant que tu n'auras pas commencer à coder un minimum ton javascript ( je ne vais pas le coder à ta place.... encore... )
Donc, commence à coder et reviens nous voir en expliquant sur quel point précis tu bloques.
Je suppose que tu n'as pas regardé dans la console de ton navigateur pour voir les éventuelles erreurs ?
Déjà, tu as initialisé tes variables de la mauvaise manière
à remplacer par
ensuite, ton code html est faux....
Tu as le même id pour tous les éléments de ta boucle .... un ID (comprendre IDENTIFIANT) se doit d'être unique...
et puis, à la limite, il vaudrait mieux utiliser des class ..
par exemple
et donc, pour récupérer la liste des articles, ton JS pourrait ressembler à ça
y'a plus qu'à faire pareil pour chaque input de ton formulaire ...
PS: tu a mis le "success" dans ton ajax ... pense aussi à mettre le "error"
Ou encore mieux, utilise le "done" et "fail" comme c'est le cas dans ta précédente question..
PS² : Pourquoi dans ton script PHP ajax, tu fais du mysqli ... alors que sur tes autres pages tu fais du PDO ??????
Faut vraiment arrêter de copier/coller bêtement.....
Fais au moins l'effort d'essayer de comprendre et un minimum d'adapter le code à ce que tu as déjà dans ton site....
Déjà, tu as initialisé tes variables de la mauvaise manière
var article = $("#article");
à remplacer par
var article = []; // on l'initialise en tant qu'array
ensuite, ton code html est faux....
Tu as le même id pour tous les éléments de ta boucle .... un ID (comprendre IDENTIFIANT) se doit d'être unique...
et puis, à la limite, il vaudrait mieux utiliser des class ..
par exemple
<input name="article" id="article_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc article" placeholder="Article" value="<?= $articless['article'] ?>" readonly>
et donc, pour récupérer la liste des articles, ton JS pourrait ressembler à ça
var arrAticle = []; // on l'initialise en tant qu'array // on boucle sur tous les éléments ayant la class "article" $(".article").each(function() arrAticle.push($(this).val()); }); console.log({arrAticle}); // regarde dans la console le résultat var sendArticle = JSON.stringify(arrAticle); console.log({sendArticle }); // regarde dans la console le résultat
y'a plus qu'à faire pareil pour chaque input de ton formulaire ...
PS: tu a mis le "success" dans ton ajax ... pense aussi à mettre le "error"
error: function (jqXHR, exception) { console.log(jqXHR, exception); alert("Erreur AJAX .. regarde dans la console pour plus de détails"); }
Ou encore mieux, utilise le "done" et "fail" comme c'est le cas dans ta précédente question..
$.ajax({ type: "POST", url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", data: data, async: true, dataType: "json" }).done(function (reponse) { console.log("reponse ajax",reponse); }).fail(function (jqXHR, textStatus) { alert('Ajax error'); console.log({textStatus}, {jqXHR}); });
PS² : Pourquoi dans ton script PHP ajax, tu fais du mysqli ... alors que sur tes autres pages tu fais du PDO ??????
Faut vraiment arrêter de copier/coller bêtement.....
Fais au moins l'effort d'essayer de comprendre et un minimum d'adapter le code à ce que tu as déjà dans ton site....
Je suis vraiment nul donc j'essaye tout ce que je trouve et j'essaye de comprend , ca fait que 1 semaine et demi que donc c'est tout nouveaux pour moi, et j'ai énormément de mal avec la manière dont c'est écrit Ya des + partout et je ne sais toujours pas a quoi ca sert et par exemple je ne savais pas qui faillais dans un premier temps mettre les infos dans un array et après de les ajouter avec un boucle.
Ducoup j'ai tout fait , dans la console aucune erreur est détecter, mais aucun info est stocker dans arrArticle ect et donc rien dans sendArticle ect
Img console :

Mon code js :
Code html :
et le . il sert a quoi ?
Je suis désole encore une fois si j'ai fait des erreurs grave.
J'ai ajouter le error mais rien dans la console.
Ducoup j'ai tout fait , dans la console aucune erreur est détecter, mais aucun info est stocker dans arrArticle ect et donc rien dans sendArticle ect
Img console :

Mon code js :
$(document).ready(function(){ $("#button_save").click(function(){ var arrNumeros = []; var arrArticle = []; var arrReferencearticle = []; var arrCout = []; var arrQuantite = []; var arrTva = []; var arrRemise = []; $(".numeros").each(function(){ arrNumeros.push($(this).val()); }); console.log({arrNumeros}); $(".article").each(function(){ arrArticle.push($(this).val()); }); console.log({arrArticle}); $(".referencearticle").each(function(){ arrReferencearticle.push($(this).val()); }); console.log({arrReferencearticle}); $(".cout").each(function(){ arrCout.push($(this).val()); }); console.log({arrCout}); $(".quantite").each(function(){ arrQuantite.push($(this).val()); }); console.log({arrQuantite}); $(".tva").each(function(){ arrTva.push($(this).val()); }); console.log({arrTva}); $(".remise").each(function(){ arrRemise.push($(this).val()); }); console.log({arrRemise}); var sendNumeros = JSON.stringify(arrNumeros); console.log({sendNumeros}); var sendArticle = JSON.stringify(arrArticle); console.log({sendArticle}); var sendRef = JSON.stringify(arrReferencearticle); console.log({sendRef}); var sendCout = JSON.stringify(arrCout); console.log({sendCout}); var sendQuantite = JSON.stringify(arrQuantite); console.log({sendQuantite}); var sendTva = JSON.stringify(arrTva); console.log({sendTva}); var sendRemise = JSON.stringify(arrRemise); console.log({sendRemise}); $.ajax({ url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", type: "POST", data: { numeros : sendNumeros, article : sendArticle, referencearticle : sendRef, cout : sendCout, quantite : sendQuantite, tva : sendTva, remise : sendRemise, }, success:function(data){ }, error : function(data){ } }); }); });
Code html :
<!-- En haut --> <input name="numerosfacture" id="numeros_<?= $articless['id'] ?>" type="text" class="form-control pt-25 w-50" placeholder="00000" value="" required> <!-- En haut --> <div class="invoice-item d-flex border rounded mb-1"> <div class="invoice-item-filed row pt-1 px-1"> <div class="col-12 col-md-4 form-group"> <label>Article :</label> <input name="article" id="article_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc" placeholder="Article" value="<?= $articless['article'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Cout :</label> <input name="cout" id="cout_<?= $articless['id'] ?>" type="number" class="form-control" placeholder="0" value="<?= $articless['cout'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Quantite :</label> <input name="quantite" id="quantite_<?= $articless['id'] ?>" type="number" min="1" max="<?= $articless['quantite'] ?>" class="form-control" placeholder="0" value="<?= $articless['quantite'] ?>" required> </div> <div class="col-md-4 col-12 form-group"> <label>Ref :</label> <input name="referencearticle" id="referencearticle_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc" placeholder="Réference" value="<?= $articless['referencearticle'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Remise:</label> <input name="remise" type="text" id="remise_<?= $articless['id'] ?>" class="form-control" placeholder="0" value="<?= $articless['remise'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Tva :</label> <input name="tva" type="text" id="tva_<?= $articless['id'] ?>" class="form-control" placeholder="0" value="<?= $articless['tva'] ?>" readonly> </div> </div> </div>
et le . il sert a quoi ?
$(".article")
Je suis désole encore une fois si j'ai fait des erreurs grave.
J'ai ajouter le error mais rien dans la console.
pourquoi as-tu enlevé le code qui se trouvait dans les fonctions success et error de ton Ajax si je les ai mis ce n'est pas pour rien !!!!
en plus je t'ai expliqué comment déboguer un appel Ajax dans la console de Firefox...
Ça serait bien que tu nous montre ce que ton appel Ajax affiche dans la console ..
en plus je t'ai expliqué comment déboguer un appel Ajax dans la console de Firefox...
Ça serait bien que tu nous montre ce que ton appel Ajax affiche dans la console ..
Je n'est pas très bien compris,
vous voulez que je remplace :
Quand je le remplace dans la console les erreurs suivante s'affiche :

vous voulez que je remplace :
$.ajax({ type: "POST", url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", data: data, async: true, dataType: "json" }).done(function (reponse) { console.log("reponse ajax",reponse); }).fail(function (jqXHR, textStatus) { alert('Ajax error'); console.log({textStatus}, {jqXHR}) });
Quand je le remplace dans la console les erreurs suivante s'affiche :

En plus je ne t'avais parlé que du code se trouvant dans le success et le error ( ou dans le done et fail )
mais bon,
tu peux remplacer la variable data par tes datas...
mais bon,
tu peux remplacer la variable data par tes datas...
var data = { numeros : sendNumeros, article : sendArticle, referencearticle : sendRef, cout : sendCout, quantite : sendQuantite, tva : sendTva, remise : sendRemise }; $.ajax({ type: "POST", url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", data: data, async: true, dataType: "json" }).done(function (reponse) { console.log("reponse ajax",reponse); // c'est de ça que je parlais }).fail(function (jqXHR, textStatus) { alert('Ajax error'); // c'est de ça que je parlais console.log({textStatus}, {jqXHR}); // c'est de ça que je parlais });
Ah oui, ok je voit j'ai oublier de définir "data", c'est une faute d’inattention et nom du copier/coller, il était tard ducoup j'ai tout refait, mais l'alert error apparait et je ne comprend pas l'erreur dans la console:
Erreur console :

Erreur console :

$(document).ready(function(){ $("#button_save").click(function(){ var arrNumeros = []; var arrArticle = []; var arrReferencearticle = []; var arrCout = []; var arrQuantite = []; var arrTva = []; var arrRemise = []; $(".numeros").each(function(){ arrNumeros.push($(this).val()); }); $(".article").each(function(){ arrArticle.push($(this).val()); }); $(".referencearticle").each(function(){ arrReferencearticle.push($(this).val()); }); $(".cout").each(function(){ arrCout.push($(this).val()); }); $(".quantite").each(function(){ arrQuantite.push($(this).val()); }); $(".tva").each(function(){ arrTva.push($(this).val()); }); $(".remise").each(function(){ arrRemise.push($(this).val()); }); var sendNumeros = JSON.stringify(arrNumeros); var sendArticle = JSON.stringify(arrArticle); var sendRef = JSON.stringify(arrReferencearticle); var sendCout = JSON.stringify(arrCout); var sendQuantite = JSON.stringify(arrQuantite); var sendTva = JSON.stringify(arrTva); var sendRemise = JSON.stringify(arrRemise); $.ajax({ type: "POST", url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", data: { numeros : sendNumeros, article : sendArticle, referencearticle : sendRef, cout : sendCout, quantite : sendQuantite, tva : sendTva, remise : sendRemise, }, async: true, dataType: "json" }).done(function (reponse) { // je ne sais pas si le reponse ici est bien placer , ou bien il faut le remplacer par data ? alert('Ajax reussit'); console.log("reponse ajax",reponse); // ici aussi }).fail(function (jqXHR, textStatus) { alert('Ajax error'); console.log({textStatus}, {jqXHR}) }); }); });
Oui, fin je pense pas que c'est juste, je ne sais pas comment je pourrai faire entrée valeur par valeur (boucle)
Config.php
Dans la console dans l'espace réponse il y a rien "Aucune donnée disponible en réponse à cette requête"
<?php require_once 'config.php'; session_start(); $numArr = json_decode($_POST["numeros"]); $artArr = json_decode($_POST["article"]); $refArr = json_decode($_POST["referencearticle"]); $coutArr = json_decode($_POST["cout"]); $tvaArr = json_decode($_POST["tva"]); $remiseArr = json_decode($_POST["remise"]); $quantArr = json_decode($_POST["quantite"]); $typ = ""; $id_session = $_SESSION['id_session']; //$_SESSION for ($i = 0; $i < count($artArr); $i++) { if(($artArr[$i] != "")) { $sql = "INSERT INTO articles(article, referencearticle, cout, quantite, tva, remise, numeros, typ, id_session)"; $datas = array(':article'=>$artArr[$i], ':referencearticle'=>$refArr[$i], ':cout'=>$coutArr[$i], ':quantite'=>$quantArr[$i], ':tva'=>$tvaArr[$i], ':remise'=>$remiseArr[$i], ':numeros'=>$numArr[$i], ':typ'=>$typ, ':id_session'=>$id_session ); try { $pdoSt = $bdd->prepare($sql); $pdoSt->execute($datas); } catch (Exception $e) { echo "Erreur : " . $e->getMessage(); } } else{ echo "Erreur php"; } } ?>
Config.php
<?php try{ $bdd =new PDO('mysql:host=localhost;dbname=u243663731_; charset=utf8', 'root', ''); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
Dans la console dans l'espace réponse il y a rien "Aucune donnée disponible en réponse à cette requête"
Dans ta capture de la console .. on voit que les variables sont vides ....
As tu bien appliqué TOUT ce que je t'ai indiqué dans ma réponse https://forums.commentcamarche.net/forum/affich-36965364-multi-insertion-en-ajax#4
A savoir, mettre des CLASS sur tes INPUT pour les identifier ??
J'en doute, vu que dans ta réponse https://forums.commentcamarche.net/forum/affich-36965364-multi-insertion-en-ajax#5 je ne les vois pas. ..
As tu bien appliqué TOUT ce que je t'ai indiqué dans ma réponse https://forums.commentcamarche.net/forum/affich-36965364-multi-insertion-en-ajax#4
A savoir, mettre des CLASS sur tes INPUT pour les identifier ??
J'en doute, vu que dans ta réponse https://forums.commentcamarche.net/forum/affich-36965364-multi-insertion-en-ajax#5 je ne les vois pas. ..
Bonsoir, si j'ai appliquer toute les class dans la question :
et je vous l'avais montrer un peu plus haut
<!-- En haut --> <input name="numerosfacture" id="numeros_<?= $articless['id'] ?>" type="text" class="form-control pt-25 w-50" placeholder="00000" value="" required> <!-- En haut --> <div class="invoice-item d-flex border rounded mb-1"> <div class="invoice-item-filed row pt-1 px-1"> <div class="col-12 col-md-4 form-group"> <label>Article :</label> <input name="article" id="article_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc" placeholder="Article" value="<?= $articless['article'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Cout :</label> <input name="cout" id="cout_<?= $articless['id'] ?>" type="number" class="form-control" placeholder="0" value="<?= $articless['cout'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Quantite :</label> <input name="quantite" id="quantite_<?= $articless['id'] ?>" type="number" min="1" max="<?= $articless['quantite'] ?>" class="form-control" placeholder="0" value="<?= $articless['quantite'] ?>" required> </div> <div class="col-md-4 col-12 form-group"> <label>Ref :</label> <input name="referencearticle" id="referencearticle_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc" placeholder="Réference" value="<?= $articless['referencearticle'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Remise:</label> <input name="remise" type="text" id="remise_<?= $articless['id'] ?>" class="form-control" placeholder="0" value="<?= $articless['remise'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Tva :</label> <input name="tva" type="text" id="tva_<?= $articless['id'] ?>" class="form-control" placeholder="0" value="<?= $articless['tva'] ?>" readonly> </div> </div> </div>
et je vous l'avais montrer un peu plus haut
Tu vas me dire que cette ligne de code
contient, comme dans l'exemple que je t'avais donné
la class "article" ???
Soit faut que j'achète des lunettes .... soit.... c'est toi qui en a besoin....
<input name="article" id="article_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc" placeholder="Article" value="<?= $articless['article'] ?>" readonly>
contient, comme dans l'exemple que je t'avais donné
<input name="article" id="article_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc article" placeholder="Article" value="<?= $articless['article'] ?>" readonly>
la class "article" ???
Soit faut que j'achète des lunettes .... soit.... c'est toi qui en a besoin....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non je n'avais pas mit dans class article , mais par contre la je ne sais pas a quoi ca va servir pouvez vous m'expliquez si ça ne vous dérange pas ?
J'ai quand mème appliquer bêtement mais le résultat ne change pas!
Dans la console ca me detecte une erreur de syntax

au niveau du ':numeros'=>... dans le php
J'ai quand mème appliquer bêtement mais le résultat ne change pas!
<!-- En haut --> <input name="numerosfacture" id="numeros_<?= $articless['id'] ?>" type="text" class="form-control pt-25 w-50 numeros" placeholder="00000" value="" required> <!-- En haut --> <div class="invoice-item d-flex border rounded mb-1"> <div class="invoice-item-filed row pt-1 px-1"> <div class="col-12 col-md-4 form-group"> <label>Article :</label> <input name="article" id="article_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc article" placeholder="Article" value="<?= $articless['article'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Cout :</label> <input name="cout" id="cout_<?= $articless['id'] ?>" type="number" class="form-control cout" placeholder="0" value="<?= $articless['cout'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Quantite :</label> <input name="quantite" id="quantite_<?= $articless['id'] ?>" type="number" min="1" max="<?= $articless['quantite'] ?>" class="form-control quantite" placeholder="0" value="<?= $articless['quantite'] ?>" required> </div> <div class="col-md-4 col-12 form-group"> <label>Ref :</label> <input name="referencearticle" id="referencearticle_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc referencearticle" placeholder="Réference" value="<?= $articless['referencearticle'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Remise:</label> <input name="remise" type="text" id="remise_<?= $articless['id'] ?>" class="form-control remise" placeholder="0" value="<?= $articless['remise'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Tva :</label> <input name="tva" type="text" id="tva_<?= $articless['id'] ?>" class="form-control tva" placeholder="0" value="<?= $articless['tva'] ?>" readonly> </div> </div> </div>
Dans la console ca me detecte une erreur de syntax

au niveau du ':numeros'=>... dans le php
Encore une fois.... relis mon message #4 ... tu vas y lire la phrase suivate
Donc... ben..... y'a plus qu'à faire pareil pour tes autres champs...
Et pour les explications du " à quoi sert la class article " ... et bien, il faut que tu comprennes comment fonctionne jquery...
Voici de quoi commencer : https://www.w3schools.com/jquery/sel_class.asp
,
y'a plus qu'à faire pareil pour chaque input de ton formulaire ...
Donc... ben..... y'a plus qu'à faire pareil pour tes autres champs...
Et pour les explications du " à quoi sert la class article " ... et bien, il faut que tu comprennes comment fonctionne jquery...
Voici de quoi commencer : https://www.w3schools.com/jquery/sel_class.asp
,
Faudra me montrer comment tu as fais... car je n'ai pas encore le dont de voir à distance par télépathie :-)
Ensuite, au niveau du message d'erreur que tu nous montres au niveau de la console, cela indique (comme c'est écrit...) qu'il y a un souci au niveau de te requête sql....
et si on regarde ce que tu as écrit
Oui.. il manque une bonne moitié de la requête.....
Si tu ne vois pas l'erreur, informe toi sur l'écriture d'une requête INSERT en SQL ...
Ensuite, au niveau du message d'erreur que tu nous montres au niveau de la console, cela indique (comme c'est écrit...) qu'il y a un souci au niveau de te requête sql....
et si on regarde ce que tu as écrit
$sql = "INSERT INTO articles(article, referencearticle, cout, quantite, tva, remise, numeros, typ, id_session)";
Oui.. il manque une bonne moitié de la requête.....
Si tu ne vois pas l'erreur, informe toi sur l'écriture d'une requête INSERT en SQL ...
J'ai tout re ecrit et oui vous aviez raison.
Maintenant le pb c'est que ca ne me signal plus aucun problème.
Dans Requete = Aucun paramètre pour cette requête
Dans reponse = Aucune donnée disponible en réponse à cette requête
Mais le truc c'est que quand dans le code php
je remplace
par
Ca me rentre dans la bdd dans la colonne numeros , pour l'article coca =2 et pour l'article ordinateur = 1

<?php require_once 'config.php'; session_start(); $numArr = json_decode($_POST["numeros"]); $artArr = json_decode($_POST["article"]); $refArr = json_decode($_POST["referencearticle"]); $coutArr = json_decode($_POST["cout"]); $tvaArr = json_decode($_POST["tva"]); $remiseArr = json_decode($_POST["remise"]); $quantArr = json_decode($_POST["quantite"]); $typ = ""; $id_session = $_SESSION['id_session']; //$_SESSION for ($i = 0; $i < count($artArr); $i++) { if(($artArr[$i] != "")) { $sql = "INSERT INTO articles (article, referencearticle, cout, quantite, tva, remise, numeros, typ, id_session) VALUES (?,?,?,?,?,?,?,?,?)"; $datas = array(htmlspecialchars($artArr[$i]), htmlspecialchars($refArr[$i]), htmlspecialchars($coutArr[$i]), htmlspecialchars($quantArr[$i]), htmlspecialchars($tvaArr[$i]), htmlspecialchars($remiseArr[$i]), htmlspecialchars($numArr[$i]), htmlspecialchars($typ), htmlspecialchars($id_session) ); try { $pdoSt = $bdd->prepare($sql); $pdoSt->execute($datas); } catch (Exception $e) { echo "Erreur : " . $e->getMessage(); } } else{ echo "Erreur php"; } } ?>
Maintenant le pb c'est que ca ne me signal plus aucun problème.
Dans Requete = Aucun paramètre pour cette requête
Dans reponse = Aucune donnée disponible en réponse à cette requête
Mais le truc c'est que quand dans le code php
je remplace
$numArr = json_decode($_POST["numeros"]);
par
$numArr = "123");
Ca me rentre dans la bdd dans la colonne numeros , pour l'article coca =2 et pour l'article ordinateur = 1

Bon ducouo j'ai essaye de faire quelque chose mais ca na pas marche le problème c'est que le input "numeros" n’était pas dans la boucle foreach donc j'ai décider de mette un input en hidden pour transmettre le numéros en mme temps avec un peu de js
Code js pour mettre le numeros dans l'input hidden
Je ne sais comment je peut faire xD
<div data-repeater-list="group-a"> <h6 class="invoice-number mr-75">Avoir N°</h6> <input name="numerosfacture" id="numeroshidden" type="text" class="form-control pt-25 w-50 numeros" placeholder="00000" value="" onkeyup="hidden()" required><br> <div data-repeater-item> <?php foreach($articles as $articless): ?> <style> .grey{ background-color: black; } </style> <div class="invoice-item d-flex border rounded mb-1"> <div class="invoice-item-filed row pt-1 px-1"> <div class="col-12 col-md-4 form-group"> <label>Article :</label> <input name="article" id="article_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc article" placeholder="Article" value="<?= $articless['article'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Cout :</label> <input name="cout" id="cout_<?= $articless['id'] ?>" type="text" class="form-control cout" placeholder="0" value="<?= $articless['cout'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Quantite :</label> <input name="quantite" id="quantite_<?= $articless['id'] ?>" type="number" min="1" max="<?= $articless['quantite'] ?>" class="form-control quantite" placeholder="0" value="<?= $articless['quantite'] ?>" required> </div> <div class="col-md-4 col-12 form-group"> <label>Ref :</label> <input name="referencearticle" id="referencearticle_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc referencearticle" placeholder="Réference" value="<?= $articless['referencearticle'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Remise:</label> <input name="remise" type="text" id="remise_<?= $articless['id'] ?>" class="form-control remise" placeholder="0" value="<?= $articless['remise'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Tva :</label> <input name="tva" type="text" id="tva_<?= $articless['id'] ?>" class="form-control tva" placeholder="0" value="<?= $articless['tva'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <input name="numeros" type="hidden" id="numeros_<?= $articless['id'] ?>" class="form-control numeros" readonly> </div> </div> </div> <?php endforeach; ?> </div> </div>
Code js pour mettre le numeros dans l'input hidden
function hidden(){ var c = document.getElementById("numeroshidden").value; document.getElementById("numeros_<?= $articless['id'] ?>").innerHTML = c; }
Je ne sais comment je peut faire xD
Commence par modifier légèrement le script Javascript comme ceci
Côté PHP tu peux modifier un peu le script comme ceci également
Ca devrait te permettre de voir une réponse dans la console javascript et ainsi expliquer tes éventuels soucis...
$(document).ready(function(){ $("#button_save").click(function(){ var arrNumeros = []; var arrArticle = []; var arrReferencearticle = []; var arrCout = []; var arrQuantite = []; var arrTva = []; var arrRemise = []; $(".numeros").each(function(){ arrNumeros.push($(this).val()); }); $(".article").each(function(){ arrArticle.push($(this).val()); }); $(".referencearticle").each(function(){ arrReferencearticle.push($(this).val()); }); $(".cout").each(function(){ arrCout.push($(this).val()); }); $(".quantite").each(function(){ arrQuantite.push($(this).val()); }); $(".tva").each(function(){ arrTva.push($(this).val()); }); $(".remise").each(function(){ arrRemise.push($(this).val()); }); var sendNumeros = JSON.stringify(arrNumeros); var sendArticle = JSON.stringify(arrArticle); var sendRef = JSON.stringify(arrReferencearticle); var sendCout = JSON.stringify(arrCout); var sendQuantite = JSON.stringify(arrQuantite); var sendTva = JSON.stringify(arrTva); var sendRemise = JSON.stringify(arrRemise); var datas = { numeros : sendNumeros, article : sendArticle, referencearticle : sendRef, cout : sendCout, quantite : sendQuantite, tva : sendTva, remise : sendRemise, }; // Affiche dans la console les données envoyées dans la requête Ajax console.log('Données envoyées dans la requete : ", datas); $.ajax({ type: "POST", url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", data: datas, // correspond à la variable datas inialisée juste au dessus async: true, dataType: "json" }).done(function (reponse) { // reponse est le nom de la variable qui contiendra la réponse du script php console.log("reponse ajax",reponse); // Affiche dans la console la réponse du script ajax php alert('Ajax reussit ... merci de regarder dans la console ce qui s'y affiche !'); }).fail(function (jqXHR, textStatus) { alert('Ajax error'); console.log({textStatus}, {jqXHR}) }); }); });
Côté PHP tu peux modifier un peu le script comme ceci également
<?php session_start(); // toujours le mettre en premier dans un script php ! //connexion à la bdd require_once 'config.php'; //récupération PROPRE des variables AVANT de les utiliser $numArr = !empty($_POST["numeros"]) ? json_decode($_POST["numeros"]) : NULL; $artArr = !empty($_POST["article"]) ? json_decode($_POST["article"]) : NULL; $refArr = !empty($_POST["referencearticle"]) ? json_decode($_POST["referencearticle"]): NULL; $coutArr = !empty($_POST["cout"]) ? json_decode($_POST["cout"]): NULL; $tvaArr = !empty($_POST["tva"]) ? json_decode($_POST["tva"]): NULL; $remiseArr = !empty($_POST["remise"]) ?json_decode($_POST["remise"]): NULL; $quantArr = !empty($_POST["quantite"]) ? json_decode($_POST["quantite"]): NULL; $typ = ""; $id_session = !empty($_SESSION['id_session']) ? $_SESSION['id_session'] : NULL ; //$_SESSION if(!$id_session)){ // id_session est vide ! $result = array('ERROR'=> "id_session est vide !!", 'SESSION'=>$_SESSION) ; echo json_encode($result); // on renvoi le result dans le javascript au format json exit; } // Ne pas hésiter à faire des retours à la ligne dans ta requête SQL pour la rendre plus lisible... $sql = "INSERT INTO articles (article, referencearticle, cout, quantite, tva, remise, numeros, typ, id_session) VALUES (?,?,?,?,?,?,?,?,?)"; if(!empty($artArr)){ for ($i = 0; $i < count($artArr); $i++) { if((!empty($artArr[$i]))) { $datas = array($artArr[$i], $refArr[$i], $coutArr[$i], $quantArr[$i], $tvaArr[$i], $remiseArr[$i], $numArr[$i], $typ, $id_session ); try { $pdoSt = $bdd->prepare($sql); $result['SUCCESS'][] = $pdoSt->execute($datas); } catch (Exception $e) { $result[] = array('ERROR'=> $e->getMessage(), 'DATAS'=>$datas ); } } else{ $result[] = array('ERROR'=> "variable artArr[".$i."] vide !!") ; } } }else{ $result = array('ERROR'=> "variable vide !!", 'POST'=>$_POST) ; } echo json_encode($result); // on renvoi le result dans le javascript au format json exit; ?>
Ca devrait te permettre de voir une réponse dans la console javascript et ainsi expliquer tes éventuels soucis...
Non il n'y a pas de reponse,
Je pense que le probleme vien de mon form html
Plus précieusement de mon input numeros
parce que quand je modifie dans le php :
par
L'erreur n'apparait plus. (mais ca ne marche pas quand meme)
Code html
L'input n'est pas dans la boucle, mais si je le met ducoup l'input va se dupliquer.
J'ai essaye de faire quelque chose avec un hidden mais sans succès
Je pense que le probleme vien de mon form html
Plus précieusement de mon input numeros
parce que quand je modifie dans le php :
$numArr = !empty($_POST["numeros"]) ? json_decode($_POST["numeros"]) : NULL;
par
$numArr = "1214125";
L'erreur n'apparait plus. (mais ca ne marche pas quand meme)
Code html
<div class="invoice-product-details "> <div data-repeater-list="group-a"> <h6 class="invoice-number mr-75">Avoir N°</h6> <input name="numerosfacture" id="numeros_<?php foreach($articles as $articless): ?><?= $articless['id'] ?><?php endforeach; ?>" type="text" class="form-control pt-25 w-50 numeros" placeholder="00000" value="" required><br> <div data-repeater-item> <?php foreach($articles as $articless): ?> <div class="invoice-item d-flex border rounded mb-1"> <div class="invoice-item-filed row pt-1 px-1"> <div class="col-12 col-md-4 form-group"> <label>Article :</label> <input name="article" id="article_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc article" placeholder="Article" value="<?= $articless['article'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Cout :</label> <input name="cout" id="cout_<?= $articless['id'] ?>" type="text" class="form-control cout" placeholder="0" value="<?= $articless['cout'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Quantite :</label> <input name="quantite" id="quantite_<?= $articless['id'] ?>" type="number" min="1" max="<?= $articless['quantite'] ?>" class="form-control quantite" placeholder="0" value="<?= $articless['quantite'] ?>" required> </div> <div class="col-md-4 col-12 form-group"> <label>Ref :</label> <input name="referencearticle" id="referencearticle_<?= $articless['id'] ?>" type="text" class="form-control invoice-item-desc referencearticle" placeholder="Réference" value="<?= $articless['referencearticle'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Remise:</label> <input name="remise" type="text" id="remise_<?= $articless['id'] ?>" class="form-control remise" placeholder="0" value="<?= $articless['remise'] ?>" readonly> </div> <div class="col-md-3 col-12 form-group"> <label>Tva :</label> <input name="tva" type="text" id="tva_<?= $articless['id'] ?>" class="form-control tva" placeholder="0" value="<?= $articless['tva'] ?>" readonly> </div> </div> </div> <?php endforeach; ?> </div> </div> </div>
L'input n'est pas dans la boucle, mais si je le met ducoup l'input va se dupliquer.
J'ai essaye de faire quelque chose avec un hidden mais sans succès
A quoi il te sert ton champ "numeros" ?
Pourquoi l'avoir sorti de la boucle ??
et surtout.. pourquoi avoir utilisé un foreach pour créer son "id" ??
c'est quoi ce truc à la noix que tu nous fais là ??
<input name="numerosfacture" id="numeros_<?php foreach($articles as $articless): ?><?= $articless['id'] ?><?php endforeach; ?>" type="text" class="form-control pt-25 w-50 numeros" placeholder="00000" value="" required><br>
Pourquoi l'avoir sorti de la boucle ??
et surtout.. pourquoi avoir utilisé un foreach pour créer son "id" ??
id="numeros_<?php foreach($articles as $articless): ?><?= $articless['id'] ?><?php endforeach; ?>"
c'est quoi ce truc à la noix que tu nous fais là ??
Enfaite, je veut que le numeros soit le meme pour tous les articles , parce que par la suite dans une autre page , je selectionne les articles qui on comme numeros , le numeros de l'avoirs
et quand j'y repense ca ne sert a rien de faire une boucle pou numeros parce que pour tout les articles c'est le meme numeros
HTML :
Donc je remplace
par :
JS je remplace :
par :
et dans le php j'enleve le [$i]
dans
Deja dans la console les erreurs apparaissent :
Dans reponse / apercu /
Recoverable fatal error: Object of class stdClass could not be converted to string in C:\wamp64\www\html\ltr\coqpix\php\insert_avoir_articles.php on line 48
Je trouves que la requete et bizzarre :
numeros "{\"length\":0,\"prevObject\":{\"0\":{\"location\":{\"href\":\"http://localhost/html/ltr/coqpix/app-avoir-add.php?numfacture=44\",\"origin\":\"http://localhost\",\"protocol\":\"http:\",\"host\":\"localhost\",\"hostname\":\"localhost\",\"port\":\"\",\"pathname\":\"/html/ltr/coqpix/app-avoir-add.php\",\"search\":\"?numfacture=44\",\"hash\":\"\"},\"jQuery33108784852941267361\":{\"events\":{\"click\":[{\"type\":\"click\",\"origType\":\"click\",\"guid\":1,\"selector\":\"[data-dismiss=\\\"alert\\\"]\",\"needsCont…":\"\"}],\"mouseover\":[{\"type\":\"mouseover\",\"origType\":\"mouseenter\",\"guid\":26,\"selector\":\".search-list+li\",\"needsContext\":false,\"namespace\":\"\"}],\"change\":[{\"type\":\"change\",\"origType\":\"change\",\"guid\":51,\"selector\":\".dt-checkboxes-select-all+input\",\"needsContext\":false,\"namespace\":\"\"},{\"type\":\"change\",\"origType\":\"change\",\"guid\":54,\"selector\":\".invoice-item-select\",\"needsContext\":false,\"namespace\":\"\"}]},\"focusout\":2,\"focusin\":2}},\"length\":1}}"
article "[\"Ordinateur\",\"Coca\"]"
referencearticle "[\"E0198\",\"\"]"
cout "[\"1000\",\"10\"]"
quantite "[\"1\",\"1\"]"
tva "[\"20+%\",\"20+%\"]"
remise "[\"0+%\",\"0+%\"]"
et quand j'y repense ca ne sert a rien de faire une boucle pou numeros parce que pour tout les articles c'est le meme numeros
HTML :
Donc je remplace
<input name="numeros" id="numeros_<?php foreach($articles as $articless): ?><?= $articless['id'] ?><?php endforeach; ?>" type="text" class="form-control pt-25 w-50 numeros" placeholder="00000" value="" required><br>
par :
<input name="numeros" id="numeros" type="text" class="form-control pt-25 w-50 numeros" placeholder="00000" value="" required><br>
JS je remplace :
$(document).ready(function(){ $("#button_save").click(function(){ var arrNumeros = []; var arrArticle = []; var arrReferencearticle = []; var arrCout = []; var arrQuantite = []; var arrTva = []; var arrRemise = []; $(".numeros").each(function(){ arrNumeros.push($(this).val()); }); $(".article").each(function(){ arrArticle.push($(this).val()); }); $(".referencearticle").each(function(){ arrReferencearticle.push($(this).val()); }); $(".cout").each(function(){ arrCout.push($(this).val()); }); $(".quantite").each(function(){ arrQuantite.push($(this).val()); }); $(".tva").each(function(){ arrTva.push($(this).val()); }); $(".remise").each(function(){ arrRemise.push($(this).val()); }); var sendNumeros = JSON.stringify(arrNumeros); var sendArticle = JSON.stringify(arrArticle); var sendRef = JSON.stringify(arrReferencearticle); var sendCout = JSON.stringify(arrCout); var sendQuantite = JSON.stringify(arrQuantite); var sendTva = JSON.stringify(arrTva); var sendRemise = JSON.stringify(arrRemise); var datas = { numeros : sendNumeros, article : sendArticle, referencearticle : sendRef, cout : sendCout, quantite : sendQuantite, tva : sendTva, remise : sendRemise, }; // Affiche dans la console les données envoyées dans la requête Ajax console.log('Données envoyées dans la requete : ", datas'); $.ajax({ type: "POST", url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", data: datas, // correspond à la variable datas inialisée juste au dessus async: true, dataType: "json" }).done(function (reponse) { // reponse est le nom de la variable qui contiendra la réponse du script php console.log("reponse ajax",reponse); // Affiche dans la console la réponse du script ajax php alert('Ajax reussit ... merci de regarder dans la console ce qui sy affiche !'); }).fail(function (jqXHR, textStatus) { alert('Ajax error'); console.log({textStatus}, {jqXHR}) }); }); });
par :
$(document).ready(function(){ $("#button_save").click(function(){ var arrNumeros = $("numeros"); var arrArticle = []; var arrReferencearticle = []; var arrCout = []; var arrQuantite = []; var arrTva = []; var arrRemise = []; $(".article").each(function(){ arrArticle.push($(this).val()); }); $(".referencearticle").each(function(){ arrReferencearticle.push($(this).val()); }); $(".cout").each(function(){ arrCout.push($(this).val()); }); $(".quantite").each(function(){ arrQuantite.push($(this).val()); }); $(".tva").each(function(){ arrTva.push($(this).val()); }); $(".remise").each(function(){ arrRemise.push($(this).val()); }); var sendNumeros = JSON.stringify(arrNumeros); var sendArticle = JSON.stringify(arrArticle); var sendRef = JSON.stringify(arrReferencearticle); var sendCout = JSON.stringify(arrCout); var sendQuantite = JSON.stringify(arrQuantite); var sendTva = JSON.stringify(arrTva); var sendRemise = JSON.stringify(arrRemise); var datas = { numeros : sendNumeros, article : sendArticle, referencearticle : sendRef, cout : sendCout, quantite : sendQuantite, tva : sendTva, remise : sendRemise, }; // Affiche dans la console les données envoyées dans la requête Ajax console.log('Données envoyées dans la requete : ", datas'); $.ajax({ type: "POST", url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", data: datas, // correspond à la variable datas inialisée juste au dessus async: true, dataType: "json" }).done(function (reponse) { // reponse est le nom de la variable qui contiendra la réponse du script php console.log("reponse ajax",reponse); // Affiche dans la console la réponse du script ajax php alert('Ajax reussit ... merci de regarder dans la console ce qui sy affiche !'); }).fail(function (jqXHR, textStatus) { alert('Ajax error'); console.log({textStatus}, {jqXHR}) }); }); });
et dans le php j'enleve le [$i]
dans
$datas = array($artArr[$i], $refArr[$i], $coutArr[$i], $quantArr[$i], $tvaArr[$i], $remiseArr[$i], $numArr, $typ, $id_session );
Deja dans la console les erreurs apparaissent :
Dans reponse / apercu /
Recoverable fatal error: Object of class stdClass could not be converted to string in C:\wamp64\www\html\ltr\coqpix\php\insert_avoir_articles.php on line 48
Je trouves que la requete et bizzarre :
numeros "{\"length\":0,\"prevObject\":{\"0\":{\"location\":{\"href\":\"http://localhost/html/ltr/coqpix/app-avoir-add.php?numfacture=44\",\"origin\":\"http://localhost\",\"protocol\":\"http:\",\"host\":\"localhost\",\"hostname\":\"localhost\",\"port\":\"\",\"pathname\":\"/html/ltr/coqpix/app-avoir-add.php\",\"search\":\"?numfacture=44\",\"hash\":\"\"},\"jQuery33108784852941267361\":{\"events\":{\"click\":[{\"type\":\"click\",\"origType\":\"click\",\"guid\":1,\"selector\":\"[data-dismiss=\\\"alert\\\"]\",\"needsCont…":\"\"}],\"mouseover\":[{\"type\":\"mouseover\",\"origType\":\"mouseenter\",\"guid\":26,\"selector\":\".search-list+li\",\"needsContext\":false,\"namespace\":\"\"}],\"change\":[{\"type\":\"change\",\"origType\":\"change\",\"guid\":51,\"selector\":\".dt-checkboxes-select-all+input\",\"needsContext\":false,\"namespace\":\"\"},{\"type\":\"change\",\"origType\":\"change\",\"guid\":54,\"selector\":\".invoice-item-select\",\"needsContext\":false,\"namespace\":\"\"}]},\"focusout\":2,\"focusin\":2}},\"length\":1}}"
article "[\"Ordinateur\",\"Coca\"]"
referencearticle "[\"E0198\",\"\"]"
cout "[\"1000\",\"10\"]"
quantite "[\"1\",\"1\"]"
tva "[\"20+%\",\"20+%\"]"
remise "[\"0+%\",\"0+%\"]"
Il vient d'où ce numéro ? C'est toi qui le rentre à la main ou il vient de la bdd ??
Ensuite, si le numéro n'est pas un array... le json.stringify n'est pas utile côté javascript
et par conséquent, le json_decode devient inutile cote php.
Ensuite, si le numéro n'est pas un array... le json.stringify n'est pas utile côté javascript
et par conséquent, le json_decode devient inutile cote php.
pas besoin.
Retire simplement les transformations json pour ce champ tel que je te l'ai écrit dans mon précédent message.
Et si tu as toujours des soucis, pense à bien regarder dans la console tout ce qui s'y affiche... c'est grâce à la console que tu pourras débuguer ton code et trouver la cause des éventuels problèmes.
Retire simplement les transformations json pour ce champ tel que je te l'ai écrit dans mon précédent message.
Et si tu as toujours des soucis, pense à bien regarder dans la console tout ce qui s'y affiche... c'est grâce à la console que tu pourras débuguer ton code et trouver la cause des éventuels problèmes.
On est d'accord que dans le js si j'enleve.
et pour le php j'ai enlever les json
Mais ca ma donner une erreur que je ne comprend pas :

$(".numeros").each(function(){ arrNumeros.push($(this).val()); }); //et var sendNumeros = JSON.stringify(arrNumeros); //donc ca donne $(document).ready(function(){ $("#button_save").click(function(){ var arrNumeros = $("numeros"); var arrArticle = []; var arrReferencearticle = []; var arrCout = []; var arrQuantite = []; var arrTva = []; var arrRemise = []; $(".article").each(function(){ arrArticle.push($(this).val()); }); $(".referencearticle").each(function(){ arrReferencearticle.push($(this).val()); }); $(".cout").each(function(){ arrCout.push($(this).val()); }); $(".quantite").each(function(){ arrQuantite.push($(this).val()); }); $(".tva").each(function(){ arrTva.push($(this).val()); }); $(".remise").each(function(){ arrRemise.push($(this).val()); }); var sendArticle = JSON.stringify(arrArticle); var sendRef = JSON.stringify(arrReferencearticle); var sendCout = JSON.stringify(arrCout); var sendQuantite = JSON.stringify(arrQuantite); var sendTva = JSON.stringify(arrTva); var sendRemise = JSON.stringify(arrRemise); var datas = { numeros : arrNumeros, article : sendArticle, referencearticle : sendRef, cout : sendCout, quantite : sendQuantite, tva : sendTva, remise : sendRemise, }; // Affiche dans la console les données envoyées dans la requête Ajax console.log('Données envoyées dans la requete : ", datas'); $.ajax({ type: "POST", url: "../../../html/ltr/coqpix/php/insert_avoir_articles.php", data: datas, // correspond à la variable datas inialisée juste au dessus async: true, dataType: "json" }).done(function (reponse) { // reponse est le nom de la variable qui contiendra la réponse du script php console.log("reponse ajax",reponse); // Affiche dans la console la réponse du script ajax php alert('Ajax reussit ... merci de regarder dans la console ce qui sy affiche !'); }).fail(function (jqXHR, textStatus) { alert('Ajax error'); console.log({textStatus}, {jqXHR}) }); }); });
et pour le php j'ai enlever les json
$numArr = !empty($_POST["numeros"]) ? $_POST["numeros"] : NULL; // et le [$i] $numArr,
Mais ca ma donner une erreur que je ne comprend pas :

Arrgghhhhh...
Cette ligne de code signifie que tu prends tous les éléments de "type" numéros ( éléments qui n'existent pas en html ) et les stocke dans la variable arrNumeros .... donc... ben... ça ne marche pas !!
Plutôt que de te donner la réponse, je vais te faire réflechir un peu.. (ça va être dur.. mais bon, j'ai de l'espoir à revendre.. :-) )
Donc, pour commencer ...
Comment "cible" t'on un éléments html via son ID en jquery ?
Ensuite, en Jquery, comment récupère t'on la VALEUR de cet élément ?
Si tu réponds correctement à ces deux questions, ça devrait grandement t'aider à avancer...
var arrNumeros = $("numeros");
Cette ligne de code signifie que tu prends tous les éléments de "type" numéros ( éléments qui n'existent pas en html ) et les stocke dans la variable arrNumeros .... donc... ben... ça ne marche pas !!
Plutôt que de te donner la réponse, je vais te faire réflechir un peu.. (ça va être dur.. mais bon, j'ai de l'espoir à revendre.. :-) )
Donc, pour commencer ...
Comment "cible" t'on un éléments html via son ID en jquery ?
Ensuite, en Jquery, comment récupère t'on la VALEUR de cet élément ?
Si tu réponds correctement à ces deux questions, ça devrait grandement t'aider à avancer...
Merci du conseil je vais re essayer xD , j'ai deja essaye mais j'ai fait nimporte quoi , je vais essaye avec ta technique.
Mon code html :
Code js --> app-avoir_add.js
Code php -----> insert_avoir_articles.php