在数据库php / mysql / jquery中添加新表行和插入值

时间:2014-05-14 09:58:20

标签: php

我正在尝试进行试用平衡页面,当我向输入值添加新行并点击保存时,它不会占用表格中的所有行而是保存第一行。

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);

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

1 个答案:

答案 0 :(得分:0)

首先,你的代码不是那么可读,请使用适当的缩进。

其次,永远不要直接从$ _POST(或任何其他输入)插入而不进行任何输入验证。

第三,count($_POST['acc_code'])生成的查询$sql的价值是多少?您需要信息,需要调试。使用echo和print_r获取调试数据,如果是AJAX调用,请尝试使用Firebug或使用error_log将调试数据放入php错误日志中。