2017-11-02 8 views
0

私はウェブベースのERPの一種のプラットフォームで作業していますが、データベースに保存するよりもテキストボックスと選択タグからすべてのデータを保存したいという状況に固執しました。POSTで動的に追加されたすべてのテーブル要素にアクセスできませんでした

これは簡単な表です。ページの読み込みがデフォルトで完了すると、データを挿入する行が1つあります。しかし、もし買い手が何らかの材料を購入したいのであれば、私はユーザにより多くの行を挿入し、すべてのデータをdbに保存してほしい。

<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"> 
 
\t <label><b>Billing details</b></label> 
 
    <table border='1' id="myTable" class="myTable"> 
 
\t 
 
\t <thead> 
 
     <tr> 
 
     <th>Sr. No</th> 
 
     <th>Particulars</th> 
 
\t  <th>QTY</th> 
 
\t  <th>RATE</th> 
 
\t  <th>DISCOUNT</th> 
 
\t  <th id="gt">AMOUNT</th> 
 
     </tr> 
 
\t </thead> 
 
\t <tbody> 
 
\t <tr id="content"> 
 
\t  <td></td> 
 
\t  <td><?php echo $select; ?></td> 
 
\t  <td><input type="text" name="qty" id="qty" class="qty" onKeyPress="sum()"/></td> 
 
\t  <td><input type="text" name="rates" id="rates" class="rates" onKeyPress="sum()"/></td> 
 
\t  <td><input type="text" name="dis" placeholder="0" class="dis" id="dis" onKeyPress="sum()"/></td> 
 
\t  <td><input type="text" name="amount" readonly class="amount" id="amount"/></td> 
 
\t </tr> 
 
\t </tbody> 
 
\t 
 
\t </table> 
 
\t <div><b>Total Amount</b><b><input type="text" name="total" id="gTotal" class="gTotal" readonly/></b></div><br/> 
 
\t <div><b>Paid Amount</b><input type="text" name="paidamount" class="paidamount" id="paidamount"/></div><br/> 
 
\t <div><b>Balance Amount</b><input readonly type="text" name="balance" class="balance" id="balance"/></div><br/> 
 
\t <div id="addrow" style="width:50px;float: left;" onClick="addRow()">+</div> 
 
\t <div id="remrow" style="width:50px;float: left;" onClick="remRow()">-</div> 
 
\t 
 
    <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']);は、((複数の行のための)最後の行で選択した値を出力し、または最初の行の値行を追加しないでください)。これは一つでも複数の行を追加した後 sizeof($item)又は count()リターン1私のテーブル構造

id name address mobile material qty discount total balance 

あります。 私は[0]のようなものを使いこなそうとしましたが、混乱しました。私はPHPでうまくいかず、これはdbsに関連した私の最初のプロジェクトです。

ユーザーがレジスタをクリックすると、テキストボックスで利用可能なすべてのデータが表示され、select要素がdbに保存されます。各テーブルの行は、1つの別の行に保存する必要があります。私は多くを検索しましたが、それを働かせることはできませんでした。

+0

*「ユーザーがレジスターをクリックしたときに、テキストボックスで使用可能なすべてのデータと選択要素がdbに保存されます」* 2つの別々のステップで問題を分割する必要がある1 **クライアントの部分を管理し、サーバーにデータを正常に送信する(user8836893の回答を確認する)、** 2 ** PHP変数からデータを取り出してデータベースに保存する –

+0

ありがとう@Accountantうまくいきました。 –

答えて

1

動的に作成された要素を含む選択要素ごとに、mate []のような名前を付けることができます。したがって、ポストデータでは、mateという名前の配列が得られます。

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

ありがとうございます。私は2日以上ネットで検索していたが、これについては考えなかった。今はすべての行のすべてのデータをdbに挿入できますが、htmlテーブルで見ることができるように割引の列があります。 intで値引きをするために使用されます。どのように私はこの種のエラーのために(0と言う)デフォルト値を設定することができます。注意:初期化されていない文字列オフセット:0 –

+0

検索して取得しました。 –

関連する問題