Maison  >  Questions et réponses  >  le corps du texte

Extraire les données de plusieurs zones de saisie à l'aide de la boucle foreach de Jquery

<p>Je crée une commande pour un projet. J'utilise une boucle Foreach pour extraire les données de la base de données dans une table que j'ai créée. Cependant, lorsque je multiplie les données de quantité et de prix unitaire, le code ne fonctionne que pour les données de la première ligne du tableau. Comment puis-je modifier ce code pour toutes les données de boucle entrantes ? </p> <p>Panier.php : </p> <pre class="brush:php;toolbar:false;"><form action="" méthode="POST"> <table class="table table-sm mb-3 text-center align-middle"> <tête> <tr> <th>Nom du produit</th> <th>Quantité</th> <th>Prix unitaire</th> <th>Prix total</th> ≪/tr> ≪/tête> <corps> <?php foreach($ProductTbl as $productdata){ ?> <tr> <td><?= $productdata->productname ?></td> <td><classe d'entrée="quantité du centre de texte w-25" type="texte" nom="quantité[]" valeur="0"></td> <td><input class="w-25 text-center unitprice" type="text" name="unitprice[]" value="<?= $productdata->unitprice ?> ;" désactivé = " désactivé "></td> <td><input class="w-25 text-center prix total" type="text" nom="prix total[]" ;/td> ≪/tr> <?php } ?> </tcorps> </table></pre> <p>Code Javascript : </p> <pre class="brush:php;toolbar:false;">$(document).ready(function() { $('.quantity').keyup(function() { var quantité = $('.quantity').val(); var prix unitaire = $('.unitprice').val(); var prix total = $('.prix total').val(); var résultat = quantité * prix unitaire ; $('.prixtotal').val(result); }); }); });</pré> <p>Imprimer : Image</p> <p>Comment puis-je modifier le code pour qu'il s'exécute sur toutes les lignes ? </p>
P粉278379495P粉278379495385 Il y a quelques jours464

répondre à tous(1)je répondrai

  • P粉707235568

    P粉7072355682023-09-01 12:48:07

    Vous avez spécifié class,而不是id。这意味着您无法轻松地区分它们。但是,通过一些巧妙的 JQuery 代码,您可以识别数量发生更改的表行,然后获取 quantityunitprice pour l'entrée et défini prix total  :

    $(document).ready(function() {
        $('.quantity').keyup(function() {
            let tableRow = $(this).parent().parent();
            let quantity = tableRow.find('.quantity').val();
            let unitprice = tableRow.find('.unitprice').val(); 
            let totalprice = quantity * unitprice;
            tableRow.find('.totalprice').val(totalprice);
        })
    });
    

    Donc ici, nous obtenons la quantité saisie $(this),并获取父级两次:首先是 ,然后是 。我们将其存储在tableRow$(this), et obtenons le parent deux fois : d'abord , puis < /tr>< /code>. Nous le stockons dans tableRow. Étant donné que nous connaissons maintenant les lignes du tableau, nous pouvons utiliser

    find()

    pour accéder à l'entrée. Pour un exemple de code, veuillez consulter :

    https://codepen.io/kikosoft/pen/oNMjqLd🎜🎜

    répondre
    0
  • Annulerrépondre