【问题标题】:adding values of dynamically created inputs to database将动态创建的输入值添加到数据库
【发布时间】:2021-04-05 14:55:06
【问题描述】:

我正在尝试使用 jquery 和 codeignitor 将一些动态创建的输入值添加到 mysql 数据库中。

html:

<td>
<input type="number" name="quantity" id="quantity" value="1">
<input type="number" name="price" id="price" value="10">
<input type="number" name="item" id="item" value="100">
</td>
<td>
<input type="number" name="quantity" id="quantity" value="5">
<input type="number" name="price" id="price" value="40">
<input type="number" name="item" id="item" value="102">
</td>
<td>
<input type="number" name="quantity" id="quantity" value="2">
<input type="number" name="price" id="price" value="14">
<input type="number" name="item" id="item" value="101">
</td>

jQuery

$("#finish_button").click(function(e) {
var quantity = [];
var price= [];
 quantity = $('#quantity').each(function() { return this.value; }).get();
 price= $('#price').each(function() { return this.value; }).get();



          $.ajax({
            type: 'post',
            url: 'sales/add_payment,
            data: values+quantity,
            success: function () {
             
            }
          });   

 });

    

控制器

$data= $this->input->get('data');
$this->Sale->save($data);

型号

$data = array(
    'sale_time'      => date('Y-m-d H:i:s'),
    'item_id'    => $data['item_id'],
    'price'  => $data['price'],
    'quantity'   => $data['quantity'],

);

$this->db->insert('sales_items', $data );

上面的代码不起作用并且完全错误,当涉及到数组时我完全迷失了,任何帮助将不胜感激。

在数据库中我希望条目是这样的:

item_id price quantity
100 10 1
102 40 5
101 14 2

【问题讨论】:

  • 这没有意义,请您澄清一下,这个 html 来自哪里(它是如何创建的)。我想您想进行更新,而不是插入数据库,因为您一定是从某个地方获得了这个动态创建的输入?
  • html 是基于 select 创建的,因此它将是动态的,我希望每个 td 中的值作为数据库中的新行,因为我已经展示了我希望数据库中的结果
  • the html is created based on a select 表示请通过图片向我们展示您的任务?

标签: jquery mysql codeigniter


【解决方案1】:

为此,您将通过将 [] 添加到输入字段来将它们视为数组。

<td>
  <input type="number" name="quantity[]" id="quantity" value="1">
  <input type="number" name="price[]" id="price" value="10">
  <input type="number" name="item[]" id="item" value="100">
  </td>
  <td>
    <input type="number" name="quantity[]" id="quantity" value="5">
    <input type="number" name="price[]" id="price" value="40">
    <input type="number" name="item[]" id="item" value="102">
  </td>
  <td>
    <input type="number" name="quantity[]" id="quantity" value="2">
     <input type="number" name="price[]" id="price" value="14">
     <input type="number" name="item[]" id="item" value="101">
   </td>

为了能够处理表单数据,您将循环每个输入组数据。

   <?php
          //count the input and iterate
           $count  = count($_POST['item'];
           for($i=0; $i<$count; $i++){
                $data = array(
                               'quantity=>$_POST['quantity'][$i],
                                'price'=>$_POST['price'][$i],
                                'item'=>$_POST['item'][$i],
                              );
                   // here you have your data you can insert into data base
                   // print_r($data); //to see what you have.
                }
   ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多