javascript:获取单元格的值 - 修复表格单元格值未定义

时间:2018-05-07 02:44:45

标签: javascript php

我有一个PHP购物车,它将价格和数量反映到表格中。每个Td的id被命名为p1,p2,p3..etc。和q1,q2,q3..etc。这样我就可以将它们作为目标用于通过javascript显示总购物车成本。当我尝试获取id的值并将其置于警报中时,我得到“未定义”。我可以看到该值实际上是一个数字,为​​什么我得到未定义?有没有办法通过其ID访问Td的值,以便它不是未定义的?我很感激你的帮助。如果需要,会发布更多代码。

    var p1= document.getElementById("p1").value;
    var q1= document.getElementById("q1").value;
    var total= parseFloat(p1) * parseFloat(q1);  
    window.alert(p1); 

以下是此页面的代码:

<div id="shopping-cart">
    <div class="txt-heading">
        <div class="label">Shopping Cart</div> 
        <a id="btnEmpty"><img src="empty-cart.png" id= "emptycart" 
alt="empty-cart" title="Empty Cart"  /></a>
    </div>

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "secure_login";
$member_id = $_SESSION['login_user'];

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
?>

 <?php 
 $query = "select * from tbl_cart WHERE member_id= '$member_id'";
 $result = mysqli_query($conn,$query);
 if (!$result) {
 printf("Error: %s\n", mysqli_error($conn));
 exit();
}



echo "<table id='anyclass'>";
echo "<tr>
         <th id='product1'>Product</th>
         <th id='price1'>Price</th>
         <th id='quantity1'>Quantity</th>
         <th id='remove1'>Remove</th>


    </tr>";

$i=1;
while($row = $result->fetch_assoc()) {  


echo "<tr class= 'trhide'>";

echo          "<td id='product'>".$row['product_id']."</td>";

echo          "<td id= 'p$i' >".$row['price']."</td>"; 
echo          "<td id= 'q$i' >". "<input style='border:none' type = 'text' 
class= 'change' id= $row[id] value= $row[quantity] name= $row[id] data-id= 
$row[id] >" . "</td>";

echo          "<td id= 'delete'><span class='delete' data-id= $row[id] ><img 
src=delete.svg></span></td>   
  </tr>";

  $i++;
}


echo  "<tr>
          <td>Total:</td>
          <td id= 'total'></td>
          <td></td>
          <td></td> 

  </tr>";
echo "</table>";


?>

2 个答案:

答案 0 :(得分:1)

td没有value s;他们有innerText个。改变这些:

var p1= document.getElementById("p1").value;
var q1= document.getElementById("q1").value;

到这些:

var p1= document.getElementById("p1").innerText;
var q1= document.getElementById("q1").innerText;

答案 1 :(得分:1)

我为你写了3个例子

从输入中获取值

innerHTML 获取内容

outerHTML 获取整个标记的内容

npm install package_name