带有数量价格和总JavaScript计算的动态php和html表单
因此,我有表单字段和一个表,根据结果的多少进行调整 表单中每列都有名称、数量、价格和总价 显然,循环中的php和sql会使列表变大或变小,这取决于当时数据库中有多少产品 我不知道该怎么办。我知道如何计算静态表单字段,但是php循环中的表单字段又如何呢?我不知道每次当产品添加到数据库或删除时,表单字段会有多少个 因此,我的html和php是:带有数量价格和总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
<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 <li class="fa fa-arrow-left"></li></a> ';
$next = '<a href="?page=' . ($page+1) . '" class="btn btn-danger">Next <li class="fa fa-arrow-right"></li></a> ';
//<a href="#" class="btn btn-danger">Danger
// <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 <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 <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[]");