带有数量价格和总JavaScript计算的动态php和html表单

带有数量价格和总JavaScript计算的动态php和html表单,javascript,php,html,mysql,dynamic,Javascript,Php,Html,Mysql,Dynamic,因此,我有表单字段和一个表,根据结果的多少进行调整 表单中每列都有名称、数量、价格和总价 显然,循环中的php和sql会使列表变大或变小,这取决于当时数据库中有多少产品 我不知道该怎么办。我知道如何计算静态表单字段,但是php循环中的表单字段又如何呢?我不知道每次当产品添加到数据库或删除时,表单字段会有多少个 因此,我的html和php是: <div id="table-advanced" class="row"> <div class="col-lg-1

因此,我有表单字段和一个表,根据结果的多少进行调整

表单中每列都有名称、数量、价格和总价

显然,循环中的php和sql会使列表变大或变小,这取决于当时数据库中有多少产品

我不知道该怎么办。我知道如何计算静态表单字段,但是php循环中的表单字段又如何呢?我不知道每次当产品添加到数据库或删除时,表单字段会有多少个

因此,我的html和php是:

    <div id="table-advanced" class="row">
       <div class="col-lg-12">
           <div class="portlet">
              <div class="portlet-header">
                    <div class="caption">Product Ordering For <?echo $service_name; ?></div>
               <div class="portlet-body">
               </div>
               <div class="table-responsive mtl">
                    <table class="table table-striped table-bordered table-hover">
                    <thead>
                    <tr>
                       <th><a href="view-customers.php?sortby=name">Franchise</a></th>
                       <th><a href="view-customers.php?sortby=company_name">QTY</a></th>
                       <th><a href="view-customers.php?sortby=email">Price Each</a></th>
                       <th><a href="view-customers.php?sortby=email">Price Total</a></th>
                       </tr>
                    <tr>
                       </tr>
                       </thead>
                    <tbody>
                    <tr class="odd gradeA">

<?
    //connecting to server and creating link to database
    $link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
    $UserID1 = ($_SESSION['UserID']);
    echo "<div style='float: right;'>";
    $dbh = mysql_connect ("$dbhost", "$dbuser", "$dbpass") or die ('Database connection failed because: ' . mysql_error());
    mysql_select_db ("nfw_leads");
    $page = $_GET['page'];
    if(!$page || $page == 0 || !is_numeric($page)){
        $page = 1;
    }
    $limit = '600';
    class paginate{
        function init($limit, $page){
            $UserID1 = ($_SESSION['UserID']);
            $service_id = trim($_GET['service_id']);
            $query1 = mysql_query("SELECT * FROM nfw_inventory WHERE stoc_department_id = '$service_id'");
            $UserID1 = ($_SESSION['UserID']);
            $total_pages = ceil(mysql_num_rows($query1)/$limit);
            $prev = '<a href="?page=' . ($page-1) . '" class="btn btn-danger">Prev&nbsp; <li class="fa fa-arrow-left"></li></a> ';
            $next = '<a href="?page=' . ($page+1) . '" class="btn btn-danger">Next&nbsp; <li class="fa fa-arrow-right"></li></a> ';

            //<a href="#" class="btn btn-danger">Danger
            //                              &nbsp;<i class="fa fa-search"></i></a>

            if($page <= 1){
                $page = 1;
                $prev = '';
            }
            elseif($page >= $total_pages){
                $page = $total_pages;
                $next = '';
            }
            if($page > 2){
                $prev = '<a href="?page=1" class="btn btn-danger">First&nbsp; <li class="fa fa-mail-reply"></li></a> ' . $prev;
            }
            if($page < ($total_pages - 1)){
                $next = $next . '<a href="?page=' . $total_pages . '" class="btn btn-danger">Last&nbsp; <li class="fa fa-mail-forward"></li></a> ';
            }
            $start = ($limit*($page-1));
            $UserID1 = ($_SESSION['UserID']);
            $service_id = trim($_GET['service_id']);
            $query2 = mysql_query("SELECT * FROM nfw_inventory WHERE stoc_department_id = '$service_id'");
            $times_done=0;
            while($row = mysql_fetch_array($query2)) {
                if($times_done=='5'){
                    $content .= '';
                    $times_done=1;
                }
                else{
                    $times_done++;
                }
                $content .= "<tr><td> " . $row['stoc_desc'] . "</td><td><div class='input-icon'><i class='fa fa-times'></i><input type='text' name='take4' id='take4' placeholder='0' value='$take4answer' onKeyUp='calcfunc_1()' class='form-control'/></div></td><td><div class='input-icon'><i class='fa fa-usd'></i><input type='text' name='take4' id='take4' placeholder='0.00' value='" . $row['stoc_retail_price'] . "' onKeyUp='calcfunc_1()' class='form-control' readonly/></div></td><td><div class='input-icon'><i class='fa fa-usd'></i><input type='text' name='take4' id='take4' placeholder='0.00' value='" . $row['stoc_retail_price'] . "' onKeyUp='calcfunc_1()' class='form-control' readonly/></div></td>$activeallow";
            }
            return $content;
        }
    }
    $class = &new paginate;
    echo $class->init($limit, $page); 
?>
</tr>
</tbody>
</table>

产品订购

看看这个问题怎么还没有答案:

我建议,给输入字段一个数组名。在PHP循环中,如下所示:

for($i = 0; $i < 5; ++$i)
    echo "<input name='DynamicField[]'>Field Nr $i</input><br />";
这将为您提供所有字段,并按照它们在原始文件中出现的顺序编制索引。(因此字段编号0具有索引0等)

至于JS,您可以使用
getElementsByName

var dynamicFields = document.getElementsByName("DynamicField[]");
这将为您提供一个动态字段的引用数组,供您使用。
请注意,在括号中输入特定索引将破坏JS实现。

将静态字段放在循环外,将动态字段放在循环内,然后将根据来自数据库的数据生成表,这就是它的现状。。。。。。表单字段很好。它做它应该做的。我想知道,现在如何将这些表单字段相加?我不知道它们是动态的,而不是静态的。所以我想把循环中每个结果的数量和价格相加,然后在total字段中计算出来。@Elgoots这个问题还没有解决吗?如果是这样,每个字段都需要id或名称。动态字段可能有一个名称数组。例如,
name=“Qty[0]”
,然后可以使用接收PHP文件中的$\u GET[Qty]获取。这反过来应该为您获取一个包含所有动态字段的数组。
var dynamicFields = document.getElementsByName("DynamicField[]");