suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Extrahieren Sie Daten aus mehreren Eingabefeldern mithilfe der foreach-Schleife von Jquery

<p>Ich erstelle einen Auftrag für ein Projekt. Ich verwende eine Foreach-Schleife, um Daten aus der Datenbank in eine von mir erstellte Tabelle zu ziehen. Wenn ich jedoch die Mengen- und Stückpreisdaten multipliziere, funktioniert der Code nur für die Daten in der ersten Zeile der Tabelle. Wie kann ich diesen Code für alle eingehenden Schleifendaten ändern? </p> <p>Warenkorb.php: </p> <pre class="brush:php;toolbar:false;"><form action="" <table class="table table-sm mb-3 text-center align-middle"> <thead> <tr> <th>Produktname</th> <th>Menge</th> <th>Stückpreis</th> <th>Gesamtpreis</th> </tr> </thead> <tbody> <?php foreach($ProductTbl as $productdata){ ?> <tr> <td><?= $productdata->productname ?></td> <td><input class="w-25 text-center amount" type="text" name="quantity[]" <td><input class="w-25 text-center unitprice" name="unitprice[]" value="<?= $productdata->unitprice ?> ;"disabled="disabled"></td> <td>"input class="w-25 text-center totalprice" name="disabled"> ;/td> </tr> <?php } ?> </tbody> </table></pre> <p>Javascript-Code: </p> <pre class="brush:php;toolbar:false;">$(document).ready(function() { $('.quantity').keyup(function() { var Menge = $('.quantity').val(); var Einheitspreis = $('.Einheitspreis').val(); var totalprice = $('.totalprice').val(); var Ergebnis = Menge * Stückpreis; $('.totalprice').val(result); }); }); });</pre> <p>Drucken: Bild</p> <p>Wie kann ich den Code so bearbeiten, dass er in allen Zeilen ausgeführt wird? </p>
P粉278379495P粉278379495452 Tage vor508

Antworte allen(1)Ich werde antworten

  • P粉707235568

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

    您为输入指定了class,而不是id。这意味着您无法轻松地区分它们。但是,通过一些巧妙的 JQuery 代码,您可以识别数量发生更改的表行,然后获取 quantityunitprice 并设置 totalprice

    $(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);
        })
    });
    

    因此,我们在这里获取数量输入 $(this),并获取父级两次:首先是 ,然后是 。我们将其存储在tableRow中。鉴于我们现在知道表行,我们可以使用 find() 访问输入.

    示例代码请参见:https://codepen.io/kikosoft/pen/oNMjqLd

    Antwort
    0
  • StornierenAntwort