【问题标题】:run javascript for all rows in an HTML table为 HTML 表中的所有行运行 javascript
【发布时间】:2015-07-23 09:47:12
【问题描述】:

在从 MySQL 数据库获取数据后,我正在尝试为 HTML 表中的所有行运行 jscript。使用 codeigniter 在 MVC 中执行此操作。 而不是通过javascript获取所有行的计算值,我只是得到第一行。 请帮帮我!

这是代码

<table id="myTable" border="1">
<tbody>
    <tr>
        <td>date</td>
        <td>client ID</td>
        <td>client Name</td>
        <td>Bill Amount</td>
        <td>VAT(%)</td>
        <td>Service Charge(Client)</td>
        <td>Service Charge(IDK)</td>
        <td>Subtotal</td>
        <td>Service Charge(FoodHive)</td>
        <td>Delivery Charge(FoodHive)</td>
        <td>Service Tax(FoodHive)</td>
        <td>TDS</td>
        <td>Net Service Charge</td>
        <td>Net Amount</td>
    </tr>

<?php
foreach ($h->result() as $row) {?>

    <tr id="row1">
    <td><?php echo $row->order_raised_at;?></td>
    <td><?php echo $row->client_id;?></td>
    <td><?php echo $row->client_name;?></td>
    <td name="billAmount" id="billAmount"><?php echo $row->bill_amount;?></td>
    <td name="VAT" id="VAT"><?php echo $row->VAT;?></td>
    <td name="serviceChargeClient" id="serviceChargeClient"><?php echo $row->service_charge_client; ?></td>
    <td name="serviceChargeClientIDK" id="serviceChargeClientIDK"><?php echo $row->service_charge_client_idk; ?></td>
    <td name="subtotal" id="subtotal">&nbsp;</td>
    <td name="serviceChargeFH" id="serviceChargeFH"><?php echo $row->service_charge_fh;?></td>
    <td name="deliveryChargeFH" id="deliveryChargeFH">&nbsp;</td>
    <td name="serviceTaxFH" id="serviceTaxFH"><?php echo $row->service_tax_fh;?></td>
    <td name="TDS" id="TDS"><?php echo $row->TDS;?></td>
    <td name = "netServiceCharge" id="netServiceCharge">&nbsp;</td>
    <td name="netAmount" id="netAmount">&nbsp;</td>
</tr>

<script>
var bill  = $('#billAmount').text(); //220
            var vatpercent = $('#VAT').text(); //12.5%
            var servclient = $('#serviceChargeClient').text(); //10%
            var servidk = $('#serviceChargeClientIDK').text(); //5.6
            var servfhpercent = $('#serviceChargeFH').text(); //15%
            var servtaxfh = $('#serviceTaxFH').text(); //14
            var tds = $('#TDS').text(); //0

            var vat = (vatpercent/100)*bill; 
            var subtotal = bill-vat-servclient-servidk; 
            var servfh = (servfhpercent/100)*subtotal; //26.535
            var netserv = parseFloat(servfh)+parseFloat(servtaxfh);
            var netamount = bill-netserv;

            $('#subtotal').text(subtotal);
            $('#deliveryChargeFH').text(servfh);
            $('#netServiceCharge').text(netserv);
            $('#netAmount').text(netamount);
</script>
<?php } ?>

</tbody>
</table>

bill_amount、VAT、service_charge、service_charge_fh 等值已存储在各个客户的数据库中。代码使用js从表中的db获取这些值进行客户端计算,进行计算:

小计, 送货费, net_service_charge, 净额

控制器

<?php
class select extends CI_Controller{

  public function index(){

    $this->load->database(); //load database
    $this->load->model('select_model');
    $data['h'] = $this->select_model->select(); //load model method
    $this->load->view('select_view' , $data);

    }
 }?>

型号

<?php

class select_model extends CI_Model{

  function __construct(){

    parent:: __construct();
}

  public function select(){
     $orderDate = $_POST['order_date'];
     $yourDate = date("Y-m-d" , strtotime($orderDate));
     $clientName = $_POST['clientName'];
    $query = $this->db->query("SELECT client_orders.order_raised_at, client_orders.bill_amount, client_orders.client_id, 
                                client_orders.client_name, client_charges.VAT, client_charges.service_charge_client,client_orders.subtotal,
                                client_charges.service_charge_client_idk, client_charges.service_charge_fh, client_charges.service_tax_fh,
                                client_charges.TDS from client_orders INNER JOIN client_charges 
                                ON client_orders.client_id = client_charges.client_ID where client_orders.client_name = '$clientName' 
                                AND client_orders.order_raised_at = '$yourDate'");
    return $query;  


    }
  }



?>

【问题讨论】:

  • 正如信息:如果您的构造函数中没有任何自定义逻辑,则不必使用parent::__construct() 显式调用父构造函数。只需省略整个函数声明。
  • 您能否详细说明您在问什么以及您想做什么?
  • 谢谢你告诉我@Joshua

标签: javascript php html codeigniter html-table


【解决方案1】:

ids 必须是唯一的。即使在 10 个地方,$('#billAmount').text() 总是会从第一个地方获取文本:http://jsfiddle.net/48du5ouj/

我假设您在该表上有一个主键(自动增量 ID?),所以您可以这样做:

<?php foreach ($h->result() as $row) {?>

<tr id="row-<?php echo $row->id; ?>">
    <td name="billAmount" class="billAmount"><?php echo $row->bill_amount;?></td>

<script>
var bill  = $('$row-<?php echo $row->id; ?> .billAmount').text();

【讨论】:

  • 我的 id 中没有 A_I。加入了一家新公司,他们给了我一个预装的数据库,一团糟! 叹息 @Sergiu Paraschiv
  • 尝试使用foreach($h-&gt;result() as $key =&gt; $row) { 并使用$key 而不是$row-&gt;id。我猜它是一个数组,所以它会有数字索引。
【解决方案2】:
<td name="subtotal" id="subtotal">&nbsp;</td> 

喜欢这些::

<td name="subtotal" id="subtotal">
<?php 
 echo (0+$row->bill_amount) - (((0+$row->VAT)/100)*(0+$row->bill_amount)) - (0+$row->service_charge_client) - (0+$row->service_charge_client_idk);
?>
</td>

不需要脚本进行计算,如果你没有使用唯一的id来获取它的内部html值。否则使用@Sergiu Paraschiv 方法。

【讨论】:

  • 这样做是为了获取所有小计,因为它是使用数据库中的 VAT、service_charge_client、service_charge_client_idk 值计算的。但其余字段 deliveryChargeFH、netServiceCharge、netAmount 是使用不在数据库中的小计计算的。怎么做? @Prem Bikram Limbu
  • 你在开玩笑吗?其余字段 deliveryChargeFH、netServiceCharge、netAmount 使用不在数据库中的小计计算,也可以使用我的方法完成。这很容易兄弟。你需要代码吗?自己尝试一次,然后告诉我您是否需要代码。干杯!
猜你喜欢
相关资源
最近更新 更多
热门标签