Multi insertion en ajax
Résolu/Fermé
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
-
Modifié le 26 nov. 2020 à 17:50
Youn_3451 Messages postés 37 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021 - 30 nov. 2020 à 03:24
Youn_3451 Messages postés 37 Date d'inscription lundi 19 octobre 2020 Statut Membre Dernière intervention 6 avril 2021 - 30 nov. 2020 à 03:24
A voir également:
- Multi insertion en ajax
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Touche insertion clavier - Guide
8 réponses
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
26 nov. 2020 à 18:06
26 nov. 2020 à 18:06
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.
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
Modifié le 27 nov. 2020 à 07:14
Modifié le 27 nov. 2020 à 07:14
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....
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
Modifié le 27 nov. 2020 à 00:03
Modifié le 27 nov. 2020 à 00:03
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.
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
27 nov. 2020 à 00:03
27 nov. 2020 à 00:03
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 ..
Youn_3451
>
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
Modifié le 27 nov. 2020 à 00:27
Modifié le 27 nov. 2020 à 00:27
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 :
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
Youn_3451
27 nov. 2020 à 06:45
27 nov. 2020 à 06:45
.. regarde l'exemple de ta discussion précédente...
Tu vois.. on en revient au copier/coller sans chercher à comprendre... On est en plein dedans...
Tu vois.. on en revient au copier/coller sans chercher à comprendre... On est en plein dedans...
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
27 nov. 2020 à 07:14
27 nov. 2020 à 07:14
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 });
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
27 nov. 2020 à 13:39
27 nov. 2020 à 13:39
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}) }); }); });
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
27 nov. 2020 à 14:16
27 nov. 2020 à 14:16
Dans la console, il faut déplier la ligne où se trouve le POST et regarder dans l'onglet REPONSE
ça te donnera des infos sur l'erreur ( qui se situe dans le code php )
ça te donnera des infos sur l'erreur ( qui se situe dans le code php )
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
>
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
27 nov. 2020 à 14:34
27 nov. 2020 à 14:34
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
27 nov. 2020 à 14:44
27 nov. 2020 à 14:44
Et tu as retravaillé ton code php ?
Tu l'as remis en PDO et retourné le resultat de la requête au format json ?
Tu l'as remis en PDO et retourné le resultat de la requête au format json ?
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
>
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
Modifié le 27 nov. 2020 à 16:28
Modifié le 27 nov. 2020 à 16:28
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"
Youn_3451
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
28 nov. 2020 à 15:50
28 nov. 2020 à 15:50
Je ne sais pas j'ai tenté plusieurs chose rien ne fonctionne ...
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
28 nov. 2020 à 16:58
28 nov. 2020 à 16:58
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. ..
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
Modifié le 29 nov. 2020 à 00:59
Modifié le 29 nov. 2020 à 00:59
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
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
29 nov. 2020 à 10:06
29 nov. 2020 à 10:06
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
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
Modifié le 29 nov. 2020 à 14:32
Modifié le 29 nov. 2020 à 14:32
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
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
29 nov. 2020 à 14:47
29 nov. 2020 à 14:47
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
,
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
29 nov. 2020 à 14:55
29 nov. 2020 à 14:55
J'ai fait pareil pour tout les inputs , j'ai relu et tout est bon mais rien n'a changer
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
Modifié le 29 nov. 2020 à 15:14
Modifié le 29 nov. 2020 à 15:14
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 ...
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
>
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
29 nov. 2020 à 15:46
29 nov. 2020 à 15:46
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
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
29 nov. 2020 à 15:51
29 nov. 2020 à 15:51
Je sais peut etre pourquoi, je vais essaye quelque chose.
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
29 nov. 2020 à 17:10
29 nov. 2020 à 17:10
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
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
29 nov. 2020 à 17:14
29 nov. 2020 à 17:14
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...
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
Modifié le 29 nov. 2020 à 18:09
Modifié le 29 nov. 2020 à 18:09
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
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
29 nov. 2020 à 19:45
29 nov. 2020 à 19:45
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à ??
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
>
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
Modifié le 29 nov. 2020 à 20:12
Modifié le 29 nov. 2020 à 20:12
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+%\"]"
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
29 nov. 2020 à 20:11
29 nov. 2020 à 20:11
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.
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
29 nov. 2020 à 20:13
29 nov. 2020 à 20:13
Non, je le rentre manuellement, il ne vient pas de la base de données,
Je peut te faire une mini video si tu veut ?
Je peut te faire une mini video si tu veut ?
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
29 nov. 2020 à 20:19
29 nov. 2020 à 20:19
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.
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
>
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
Modifié le 29 nov. 2020 à 20:34
Modifié le 29 nov. 2020 à 20:34
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 :
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
4 721
>
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
29 nov. 2020 à 20:38
29 nov. 2020 à 20:38
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...
Youn_3451
Messages postés
37
Date d'inscription
lundi 19 octobre 2020
Statut
Membre
Dernière intervention
6 avril 2021
>
jordane45
Messages postés
38367
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 janvier 2025
29 nov. 2020 à 20:51
29 nov. 2020 à 20:51
Modifié le 26 nov. 2020 à 18:11
Merci du conseil je vais re essayer xD , j'ai deja essaye mais j'ai fait nimporte quoi , je vais essaye avec ta technique.
26 nov. 2020 à 20:26
Mon code html :
Code js --> app-avoir_add.js
Code php -----> insert_avoir_articles.php