Probleme dans mon script de multi insertion en Js , Qjery
Résolu
ScreamFR
Messages postés
73
Date d'inscription
Statut
Membre
Dernière intervention
-
ScreamFR Messages postés 73 Date d'inscription Statut Membre Dernière intervention -
ScreamFR Messages postés 73 Date d'inscription Statut Membre Dernière intervention -
Bonsoir, j'ai un formulaire qui permet d'insérer plusieurs article en même temps.
Dans mon formulaire l'utilisateur à 2 solutions soit de choisir un article dans la liste déroulante.
Soit de d'écrire manuellement le nom ainsi que les caractéristiques de l'article.
Pour cela quand l'onglet select à sa valeur de default "Sélectionnez un article" le 2eme input qui permet d'écrire l'article manuellement est disponible mais si le champ select est utiliser l'input deviens grisé (disabled).
Mon problème est que quand j'utilise pas le select, mon code utilise quand même la valeur celui ci.
Image d'illustration :
Cas ou je définie un article manuellement :

Comme vous pouvez le voir la j'ai écrit "Chaise" mais c'est "Pas de produit qui apparait"
Dans mon code js j'ai mit des conditions mais cela ne change rien ( et pas d'erreur sont déclarer dans la console)
Code js / app-add_facture.js :
Code HTML :
PS = J'ai tester de mettre le if avant le script mais ca n'a rien changer non plus.
Dans mon formulaire l'utilisateur à 2 solutions soit de choisir un article dans la liste déroulante.
Soit de d'écrire manuellement le nom ainsi que les caractéristiques de l'article.
Pour cela quand l'onglet select à sa valeur de default "Sélectionnez un article" le 2eme input qui permet d'écrire l'article manuellement est disponible mais si le champ select est utiliser l'input deviens grisé (disabled).
Mon problème est que quand j'utilise pas le select, mon code utilise quand même la valeur celui ci.
Image d'illustration :
Cas ou je définie un article manuellement :

Comme vous pouvez le voir la j'ai écrit "Chaise" mais c'est "Pas de produit qui apparait"
Dans mon code js j'ai mit des conditions mais cela ne change rien ( et pas d'erreur sont déclarer dans la console)
Code js / app-add_facture.js :
$(document).ready(function(){ var id = 1; /*Assigning id and class for tr and td tags for separation.*/ $("#button_send").click(function(){ if(document.getElementById("article").value == "Pas de produit"){ var articlee = $("#newarticle").val(); }else{ var articlee = $("#article").val(); } var newid = id++; $("#table").append(`<tr valign="top" id="${newid}"> <td width="100px" class="numeros${newid}">${$("#numeros").val()}</td> <td width="100px" class="article${newid} line">${articlee}</td> <td width="100px" class="referencearticle${newid} line">${$("#referencearticle").val()}</td> <td width="100px" class="cout${newid}">${$("#cout").val()}</td> <td width="100px" class="quantite${newid}">${$("#quantite").val()}</td> <td width="100px" class="tva${newid}">${$("#tva").val()} %</td> <td width="100px" class="remise${newid}">${$("#remise").val()} %</td> <td width="100px"><a href="javascript:void(0);" class="remCF"><i class='bx bx-x red'></i></a></td></tr>`); });
Code HTML :
<div class="invoice-item-filed row pt-1 px-1"> <div class="col-12 col-md-4 form-group"> <select id="article" class="form-control invoice-item-select"> <option value="Pas d'article">Selectionner un article</option> <?php foreach($article as $articlee): ?> <option value="<?= $articlee['article'] ?>"><?= $articlee['article'] ?></option> <?php endforeach; ?> </select> </div> <div class="col-md-3 col-12 form-group"> <input name="cout" id="cout" type="number" class="form-control" placeholder="0" onkeyup="myFunction()"> </div> <div class="col-md-3 col-12 form-group"> <input name="quantite" id="quantite" type="number" class="form-control" placeholder="0" onkeyup="myFunction()"> </div> <div class="col-md-2 col-12 form-group"> <strong id="demo" class="text-primary align-middle">00.00 €</strong> </div> <div class="col-md-4 col-12 form-group"> <label for="article">Article :</label> <input name="article" id="newarticle" type="text" class="form-control invoice-item-desc" placeholder="Nom de l'article"> </div> <div class="col-md-3 col-12 form-group"> <label for="ref">REF :</label> <input name="referencearticle" id="referencearticle" type="text" class="form-control invoice-item-desc" placeholder="Réference"required> </div> </div>
PS = J'ai tester de mettre le if avant le script mais ca n'a rien changer non plus.
A voir également:
- Probleme dans mon script de multi insertion en Js , Qjery
- Script vidéo youtube - Guide
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
2 réponses
On va commencer par réécrire ton IF complètement en jquery
et puis, histoire de rendre le code un peu plus présentable, on va le transformer en écriture ternaire ( c'est juste une autre façon de réécrire ton if )
ensuite on va juste ajouter en dessous un "alert" pour voir quelle valeur il affiche
PS: Pense bien à vider le cache de ton navigateur ( à faire systématiquement quand on modifie du code javascript ou css )
if($("#article").val() == "Pas de produit"){ var articlee = $("#newarticle").val(); }else{ var articlee = $("#article").val(); }
et puis, histoire de rendre le code un peu plus présentable, on va le transformer en écriture ternaire ( c'est juste une autre façon de réécrire ton if )
var articlee = $("#article").val() == "Pas de produit" ? $("#newarticle").val() : $("#article").val();
ensuite on va juste ajouter en dessous un "alert" pour voir quelle valeur il affiche
alert("articlee : " + articlee );
PS: Pense bien à vider le cache de ton navigateur ( à faire systématiquement quand on modifie du code javascript ou css )
Dis... tout à l'heure je t'ai dit quoi concernant la VALEUR à utiliser dans ton IF ???
A ton avis... quelle est la VALUE de l'option sur laquelle tu fais ton IF ?
A ton avis... quelle est la VALUE de l'option sur laquelle tu fais ton IF ?
<option value="Pas d'article">Selectionner un article</option>
Logiquement c'est Pas d'article
la valeur = value
Ah mince c'est Pas d'article
J'ai copie pas de produit
J'ai remplacer "Pas de produit" par "Pas d'article"
Il y a eu un changement dans l'alerte maintenant si je rentre une donnée du select ca l'affiche mais quand je choisit le 2 eme input ca mes Pas d'article
A autant pour moi j'ai pas vue le '
Ducoup ca marche <3
la valeur = value
Ah mince c'est Pas d'article
J'ai copie pas de produit
J'ai remplacer "Pas de produit" par "Pas d'article"
$(document).ready(function(){ var id = 1; /*Assigning id and class for tr and td tags for separation.*/ $("#button_send").click(function(){ var articlee = $("#article").val() == "Pas d'article'" ? $("#newarticle").val() : $("#article").val(); alert("article : " + articlee ); var newid = id++; $("#table").append(`<tr valign="top" id="${newid}"> <td width="100px" class="numeros${newid}">${$("#numeros").val()}</td> <td width="100px" class="article${newid} line">${articlee}</td> <td width="100px" class="referencearticle${newid} line">${$("#referencearticle").val()}</td> <td width="100px" class="cout${newid}">${$("#cout").val()}</td> <td width="100px" class="quantite${newid}">${$("#quantite").val()}</td> <td width="100px" class="tva${newid}">${$("#tva").val()} %</td> <td width="100px" class="remise${newid}">${$("#remise").val()} %</td> <td width="100px"><a href="javascript:void(0);" class="remCF"><i class='bx bx-x red'></i></a></td></tr>`); });
Il y a eu un changement dans l'alerte maintenant si je rentre une donnée du select ca l'affiche mais quand je choisit le 2 eme input ca mes Pas d'article
A autant pour moi j'ai pas vue le '
Ducoup ca marche <3
Au passage, plutôt que de jongler avec du text .... prends l'habitude de travailler avec des numériques...
Pas de produit => value = 0
Le produit trucbidule ... value = son id
Pas de produit => value = 0
Le produit trucbidule ... value = son id
<?php foreach($article as $articlee): ?> <option value="<?= $articlee['id'] ?>"><?= $articlee['article'] ?></option> <?php endforeach; ?>
Mon alerte :
Mon code Js / app-add_facture.js
Html n'a pas changer pas.