簡體   English   中英

無法訪問POST中所有動態添加的表元素

[英]Could not access all dynamically added table elements in POST

我正在基於Web的erp kinda平台上工作,但在這種情況下,我想從某個文本框中保存所有數據並選擇標簽,而不是將其全部保存到數據庫中。

這是一個簡單的表。 默認情況下,頁面完成加載后,將有一行用於插入數據。 但是,如果(且僅當)買方想要購買比我希望用戶插入更多行並將所有數據保存到數據庫的材料。

 <form method="post" style="border:1px solid #ccc"> <div class="container"><label><b>Billing details</b></label><table border='1' id="myTable" class="myTable">`<form method="post" style="border:1px solid #ccc"> <div class="container"> <label><b>Billing details</b></label> <table border='1' id="myTable" class="myTable"> <thead> <tr> <th>Sr. No</th> <th>Particulars</th> <th>QTY</th> <th>RATE</th> <th>DISCOUNT</th> <th id="gt">AMOUNT</th> </tr> </thead> <tbody> <tr id="content"> <td></td> <td><?php echo $select; ?></td> <td><input type="text" name="qty" id="qty" class="qty" onKeyPress="sum()"/></td> <td><input type="text" name="rates" id="rates" class="rates" onKeyPress="sum()"/></td> <td><input type="text" name="dis" placeholder="0" class="dis" id="dis" onKeyPress="sum()"/></td> <td><input type="text" name="amount" readonly class="amount" id="amount"/></td> </tr> </tbody> </table> <div><b>Total Amount</b><b><input type="text" name="total" id="gTotal" class="gTotal" readonly/></b></div><br/> <div><b>Paid Amount</b><input type="text" name="paidamount" class="paidamount" id="paidamount"/></div><br/> <div><b>Balance Amount</b><input readonly type="text" name="balance" class="balance" id="balance"/></div><br/> <div id="addrow" style="width:50px;float: left;" onClick="addRow()">+</div> <div id="remrow" style="width:50px;float: left;" onClick="remRow()">-</div> <div class="clearfix"> <input class="signupbtn" type="submit" name="submit" value="Register"/> </div> </div> </form> 

PHP部分

include "dbconnection.php";
$sql=mysqli_query($connection,"SELECT id,name FROM materials");

if(mysqli_num_rows($sql)){

$select= '<select class="mater" name="mate">';
while($rs=mysqli_fetch_array($sql)){

      $select.='<option value='.$rs['name'].'>'.$rs['name'].'</option>';
  } 
} 
$select.='</select>';

 mysqli_close($connection);

 if(isset($_POST['submit'])){

    print_r($_POST['mate']);
    echo count($_POST['mate']);

    foreach($_POST as $name => $item){

        echo count($_POST['mate']);

        if($name != 'submit'){
            for($m=0; $m < sizeof($item); $m++){
               echo ($name.' '.$item[$m].'<br>');
               //Insert something in db
            }
        }
    } 
}

print_r($_POST['mate']); 打印在最后一行中選擇的值(用於多行)或在第一行中選擇的值(如果用戶未添加其他行)。 這是我的表結構

 id name address    mobile  material    qty discount    total   balance 

即使再增加一行, sizeof($item)count()也會返回1。 我曾嘗試弄亂[0]之類的東西,但感到困惑。 我對php不太滿意,這是我與dbs有關的第一個項目。

我想要的是當用戶單擊注冊時,文本框中所有可用的數據以及select元素都保存在數據庫中。 每個表格行應保存到單獨的一行。 我進行了很多搜索,但無法正常工作。

您可以為每個選擇元素(包括動態創建的元素)指定mate []之類的名稱。 因此,在發布數據中,您將獲得名為mate的數組。

<select class="mater" name="mate[]">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM