簡體   English   中英

在數據庫php / mysql / jquery中添加新表行並插入值

[英]Adding new table row and inserting value in database php/mysql/jquery

我正在嘗試創建一個試算表頁面,當我向輸入值添加新行並點擊保存時,它並沒有占用表中的所有行,而是保存了第一行。

的PHP

 <tr class="item-row" style="font-size:12px;">
     <td class="item-name" style="margin-right: 5em;background:#A7d6F1;">
          <div class="delete-wpr">
              <textarea onkeypress="return tabE(this,event)" style="font-family: Tahoma, sans-serif;" rows="2" cols="43" maxlength="6"class="code" name="acc_code[]" id="acc_code[]"></textarea>
              <textarea onkeypress="return tabE(this,event)" readonly style="text-align:center;margin-top:-34px;margin-left:20em;font-family: Tahoma, sans-serif;" rows="2" cols="10" maxlength="6"class="type" name="type[]" id="type[]"></textarea>
              <a class="delete" href="javascript:;" title="Remove row">X</a>
          </div>
     </td>            
     <td class="item-name" align="center">
          <textarea onkeypress="return tabE(this,event)" autocomplete="off" style="font-family: Tahoma, sans-serif;" rows="2" cols="8" maxlength="6" name="int_code[]" id="int_code[]" class="intCode"></textarea>
     </td>
     <td >
          <textarea onkeypress="return tabE(this,event)" autocomplete="off" style="font-family: Tahoma, sans-serif;"rows="2" cols="15" maxlength="11" name="debit_mvt[]" id="debit_mvt[]" class="cost"></textarea>
     </td>
     <td style="">
          <textarea onkeypress="return tabE(this,event)" autocomplete="off" style="font-family: Tahoma, sans-serif;" rows="2" cols="15" maxlength="11" name="credit_mvt[]" id="credit_mvt[]" class="qty"></textarea>
     </td>
     <td>
          <textarea style="font-family: Tahoma, sans-serif;" rows="2" cols="15" maxlength="10" autocomplete="off" name="balance[]" id="balance[]" class="price" readonly></textarea>
     </td>
     <td style="background:#A7D6F1;font-family: Tahoma, sans-serif;">
          <textarea style="font-family: Tahoma, sans-serif;border:none;background-color:white"rows="2" cols="15" maxlength="10" class="deb"name="debitOld[]" id="debitOld[]" ></textarea>
     </td>
     <td style="background:#A7D6F1;font-family: Tahoma, sans-serif;">
          <textarea style="font-family: Tahoma, sans-serif;border:none;background-color:white"rows="2" cols="15" maxlength="10" class="cred"name="creditOld[]" id="creditOld[]" ></textarea>
     </td>  

添加一行

jQuery的

$("#addrow").click(function(){

$(".item-row:last").after('<tr class="item-row" style="font-size:12px;"><td class="item-name" style="background:#A7d6F1;"><div class="delete-wpr"><textarea  style="font-family: Tahoma, sans-serif;" rows="2" cols="43" maxlength="6"colspan="3" class="code" name="acc_code[]" id="acc_code[]"></textarea><textarea onkeypress="return tabE(this,event)" onkeyup="return check_type()"readonly style="text-align:center;margin-top:-34px;margin-left:20em;font-family: Tahoma, sans-serif;" rows="2" cols="10" maxlength="6"class="type" name="type[]" id="type[]"></textarea><a class="delete" href="javascript:;" title="Remove row">X</a></div></td><td ><textarea  style="font-family: Tahoma, sans-serif;" rows="2" cols="8" maxlength="6" autocomplete="off" name="int_Code[]" id="int_Code[]" class="intCode"></textarea></td><td><textarea onkeypress="return tabE(this,event)"style="font-family: Tahoma, sans-serif;"rows="2" cols="15" maxlength="10" name="acc_deb[]" id="acc_deb[]" autocomplete="off" class="cost"></textarea></td><td style=""><textarea onkeypress="return tabE(this,event)"style="font-family: Tahoma, sans-serif;" rows="2" cols="15" maxlength="9" autocomplete="off" name="acc_cred[]" id="acc_cred[]" class="qty"></textarea></td><td><textarea style="font-family: Tahoma, sans-serif;" rows="2" cols="15" maxlength="10" name="balance[]" id="balance[]" class="price" readonly></textarea></td><td style="background:#A7D6F1;font-family: Tahoma, sans-serif;"><textarea style="font-family: Tahoma, sans-serif;border:none;background-color:white"rows="2" cols="15" maxlength="10" class="deb"name="debitOld[]" id="debitOld[]" ></textarea></td><td style="background:#A7D6F1;font-family: Tahoma, sans-serif;"><textarea style="font-family: Tahoma, sans-serif;border:none;background-color:white"rows="2" cols="15" maxlength="10" class="cred" name="creditOld[]" id="creditOld[]" ></textarea></td></tr>');

將數據插入mysql的PHP代碼:

    $sql="INSERT INTO trialb ( acc_code,type,int_code,debit_mvt,credit_mvt,balance,debitOld,creditOld,date1,date2,comp_name,user_name,year,status,dt1,dt2 )
VALUES";
for ($i = 0; $i < count($_POST['acc_code']); $i++) {

$sql .= " ('{$_POST['acc_code'][$i]}', '{$_POST['type'][$i]}', '{$_POST['int_code'][$i]}', '{$_POST['debit_mvt'][$i]}','{$_POST['credit_mvt'][$i]}','{$_POST['balance'][$i]}','{$_POST['debitOld'][$i]}','{$_POST['creditOld'][$i]}','{$_SESSION["date1"]}','{$_SESSION["date2"]}','{$_SESSION["name"]}','{$_SESSION["user_name"]}',Now(),'opened','{$_SESSION["date1"]}','{$_SESSION["date2"]}'),";


}
$sql = substr($sql, 0, -1);

為什么不插入所有行???

首先,您的代碼不是這樣的可讀性,請使用適當的縮進。

其次,絕對不要在沒有任何輸入驗證的情況下直接從$ _POST(或任何其他輸入)直接插入。

第三, count($_POST['acc_code'])是多少?產生的查詢$sql什么? 您需要信息,需要調試。 使用echo和print_r獲取調試數據,如果調用AJAX,請嘗試Firebug或使用error_log將調試數據放置在php錯誤日志中。

暫無
暫無

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

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