0

一定時間後にデータベースにデータを自動保存しようとしています。これが私のビューコードです

<div id="main">
  <?php echo validation_errors(); ?>
  <h1>Purchase Product Detail</h1>


  <?php
  echo form_open( 'shop/buy_product/submit' );
  ?>
  <?php echo validation_errors(); ?>
  <table>
    <tr>
      <td>
        Shop Name
      </td>
      <td>

<?php
echo form_dropdown( 'shop', $tags );


//echo form_dropdown('shop', $options, 'Yellow');
?>
      </td>
    </tr>
    <tr>
      <th>
        SL.
      </th>
      <th>
        Product code
      </th>
      <th>
        Product Name
      </th>

      <th>
        Rate
      </th>
      <th>
        Quantity
      </th>
      <th>
        Total
      </th>
      <th>
        Sell Price
      </th>

    </tr>
<?php for ( $i = 1; $i <= 10; $i++ ): ?>
      <tr>
        <td width="10">
  <?php echo $i; ?>
        </td>

        <td>
          <input size="10" type="text" name="code[]" value="<?php echo ''; ?>" id="code_<?php echo $i; ?>" />
        </td>
        <td width="20%">
      <name="product[]" value="<?php echo ''; ?>" id="product_<?php echo $i; ?>"/>
      </td>
      <td>
        <input size="10"type="text" name="rate[]" value="<?php echo ''; ?>" id="rate_<?php echo $i; ?>" />
      </td>
      <td>
        <input size="10" type="text" name="quantity[]" value="<?php echo ''; ?>" id="quantity_<?php echo $i; ?>" />
      </td>
      <td width="15%">
      <name="total[]" value="<?php echo ''; ?>" id="total_<?php echo $i; ?>"/>
      </td>
      <td>
        <input size="10" type="text" name="sell[]" value="<?php echo ''; ?>" id="sell" />
      </td>

      </tr>
<?php endfor; ?>







  </table>
  <input type="submit" value="Submit"/>
<?php echo form_close(); ?>



</div>

これが私のモデルです

    function add_product()

        {
            $data  = array();
                $todayDate = date('Y-m-d');
                for($i = 0; $i < count($_POST['code']); $i++){
                    if($_POST['code'][$i] != '')
                    {
                        $data[] = array(
                            'code' => $_POST['code'][$i],
                            'shop' => $_POST['shop'],
                            'memo' => $_POST['memo'],
                            'rate' => $_POST['rate'][$i],
                            'quantity' => $_POST['quantity'][$i],
                            'total' =>( $_POST['rate'][$i]*$_POST['quantity'][$i]),
                            'date' => $todayDate
                            );
                    }
                }
                $linksCount = count($data);

                if($linksCount){
                    $this->db->insert_batch('purchase', $data);
                }

                return $linksCount;

        }

私の主な問題は、自動保存機能が実行されると、データベースにすべてのデータが挿入されることです。ある特定の後に同じデータを何度も繰り返すことです。誰かがこれを修正するのを手伝ってくれますか。

4

1 に答える 1

0

自動保存機能にJS/jQueryを使用していると思います。隠しフィールドをフォームに追加しますinsert_id。挿入を行う前に、そのフィールドに値があるかどうかを確認してください。そうであれば、insert_id に対応するデータベース行を更新します。それ以外の場合、insert_id は空なので、挿入する必要があります。挿入時に、jQuery を使用して現在の insert_id で隠しフィールドをロードします。

于 2012-09-10T12:12:09.220 に答える