将动态创建的输入值添加到数据库
Posted
技术标签:
【中文标题】将动态创建的输入值添加到数据库【英文标题】: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
表示请通过图片向我们展示您的任务?
【参考方案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.
?>
【讨论】:
以上是关于将动态创建的输入值添加到数据库的主要内容,如果未能解决你的问题,请参考以下文章