javascript - 无法访问 POST 中所有动态添加的表元素

标签 javascript php jquery html mysql

我正在开发一个基于 Web 的 erp 平台,但陷入了这种情况,我想保存某个文本框中的所有数据并选择标签,而不是将它们全部保存到数据库中。

这是一个简单的表格。页面加载完成后默认有一行用于插入数据。但是,如果(且仅当)买家想要购买比我希望用户插入更多行并将所有数据保存到数据库更多的 Material 时。

<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,这是我第一个与数据库相关的项目。

我想要的是,当用户单击注册时,文本框中可用的所有数据和选择元素都会保存在数据库中。每个表行应保存到一个单独的行。我搜索了很多,但无法使其工作。

最佳答案

您可以为每个选择元素(包括动态创建的元素)指定类似 mate[] 的名称。因此,在发布数据中,您将获得名为 mate 的数组。

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

关于javascript - 无法访问 POST 中所有动态添加的表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47073691/

相关文章:

Javascript 和 PHP 扫描裸体

javascript - 将 var 从一个扩展函数传递到另一个扩展函数

javascript - 动态调用函数

php - 如何允许用户登录网站并将其用户名信息保存在 PHP/HTML 中?

javascript - 具有客户端验证的自定义数据注释验证属性

php - barryvdh laravel dompdf 只渲染两页

json - SCORM API 中的异步 Ajax 调用

javascript - jQuery stop(true, true) 跳转到队列中所有动画的末尾

javascript - 在Webworker中使用AJAX加载javascript资源

javascript - 如何在 jQuery 中使用新的 HTML 代码设置打印页面?