Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 只有顶级tr/td受到影响_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 只有顶级tr/td受到影响

Javascript 只有顶级tr/td受到影响,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个表,其中的数据是从数据库中动态获取的。我面临的问题是,无论我尝试检查哪一行,结果都只出现在第一个tr/td中。我将在下面发布表格和JS的代码: > > 不能有多个ID相同的元素。必须使用class属性,并在JavaScript中使用document.getElementsByCassName选择元素并对其进行迭代。ID值在文档中必须是唯一的。如果您必须使用某些东西来标识多个元素,请不要使用id。您可以使用的其他东西是class或任何data-*属性 如果使用类,您将使用querySele

我有一个表,其中的数据是从数据库中动态获取的。我面临的问题是,无论我尝试检查哪一行,结果都只出现在第一个tr/td中。我将在下面发布表格和JS的代码:

> >
不能有多个ID相同的元素。必须使用class属性,并在JavaScript中使用document.getElementsByCassName选择元素并对其进行迭代。

ID值在文档中必须是唯一的。如果您必须使用某些东西来标识多个元素,请不要使用id。您可以使用的其他东西是class或任何data-*属性

如果使用类,您将使用querySelectorAll.the-class或GetElementsByclassName类并在结果集合上循环。如果使用data-*属性,您将使用querySelectorAll“[data attr name=attr value]”,并再次循环生成的集合

例如,您的行具有类calc,因此我们可以使用它并在每行中查找qupe和quav:

函数缺货{ Array.prototype.forEach.calldocument.querySelectorAll.calc,functionrow{ var quav=row.querySelector.quav; var qupe=row.querySelector.qupe; qupe.value=-1*quav.value; }; } 延期交货; Quav 1 库佩1 Quav 2 库佩2 Quav 3 库佩3
页面上应该只有一个具有给定id的项。您需要将每一行附加到一个表中,否则每次都会被覆盖,并确保所有元素的id都是唯一的。在寻求HTML/CSS/JS帮助时,不要发布PHP代码。发布生成的HTML/CSS/JS代码-例如,浏览器看到的内容。感谢guysI最初提供的信息,但它没有帮助,根本没有加载。感谢您的帮助,先生,但我通过Aju John的回答获得了它。虽然OP勾选了复选标记,但代码转储不是有用的答案。说出您更改了什么,以及更改的原因。我通过将整数添加到id并通过该id访问,使所有id都是唯一的。。
 <?php 
        $count = 0;
        foreach( $paid_products as $product){ 
            $price = empty($product->sales_price)?$product->price:$product->sales_price;
            $ingredients = empty($product->ingredients)?$product->ingredients:$product->ingredients;
            $quantity =  empty($product->quantity)?0:$product->quantity;
            $discount = empty($product->discount)?0:($product->discount);
            $discount_amount = empty($product->discount_amount)?0:($product->discount_amount);
            $discounted_amount = empty($product->discounted_amount)?0:($product->discounted_amount);
            $total_quantity = empty($product->product_quantity)?0:($product->product_quantity);
            $product_ordered = empty($product->product_ordered)?0:($product->product_ordered);
            $quantity_available = $total_quantity - $product_ordered;
            $subtotal = $price*$quantity;
            $count++;
            ?>
            <tr class="calc">
            <td title="Ingredients: <?php echo $product->ingredients; ?>"><?php echo $product->name; ?></td>
            <td title="Reason for price change:" <?php echo !empty($product->product_message)?' '.$product->product_message.'"':''; ?>>
                <input style="width:100%; text-align:right; padding-right:5px;"  type="text" name="paid_product_price[]" class="price paidShowMessage" value="<?php echo $price; ?>">
                <input type="text" class="paid_product_message" name="paid_product_message[]" value="<?php echo $product->product_message; ?>">
            </td>
            <td title="Reason for discount:" <?php echo !empty($product->product_dmessage)?' '.$product->product_dmessage.'"':''; ?>>
                <input style="width:100%; text-align:right; padding-right:5px;"  type="text" name="paid_product_dscnt[]" class="dscnt spidEdit paidShowDMessage" value="<?php echo $discount; ?>">
                <!--<input type="text" name="paid_product_dscnt[]" class="dscnt spidEdit" value="<?php //echo $discount; ?>" data-min="0"  data-max="<?php //echo $product->max; ?> ">-->
                <input type="text" class="paid_product_dmessage" name="paid_product_dmessage[]" value="<?php echo $product->product_dmessage; ?>">
            </td>
            <td><input type="text" name="paid_product_dscnt_amt[]" class="dscnt_amt spidEdit" value="<?php echo $discount_amount; ?>" data-min="0"  data-max="<?php echo $product->max; ?> "></td>
            <td ><input type="hidden" name="paid_product_id[]" value="<?php echo $product->product_id; ?>"><input type="hidden" value="<?php echo $quantity_available; ?>" class="qa">                
            <input  type="text"  name="paid_product_qty[]" onkeyup="backOrder(<?php echo $count; ?>)" class="qty spinEdit" value="<?php echo $quantity; ?>" data-min="0"  data-max="<?php echo $product->max; ?>" ></td><!--data-min="0"-->
            <td><input  type="text" class="bo spidEdit" id="quav_<?php echo $count; ?>" value="<?php echo $quantity_available;?>"></td>
            <td title="Back Order Quantity:">
            <input style="width:100%; text-align:right; padding-right:5px;" id="qupe_<?php echo $count; ?>" type="text" name="paid_product_bo[]" class="boShowMessage" value=""></td>

            <td style="text-align:right; padding-right:5px;"><input type="text" class="total" name="paid_product_dscnted_amt[]" value="<?php echo $discounted_amount; ?>" readonly></td>
            </tr>


            <?php } ?>


<script>
function backOrder(id)
{

var quav = document.getElementById("quav_" + id);
var qupe = document.getElementById("qupe_" + id);
qupe.value = -1 * (quav.value);

}
</script>