gpt4 book ai didi

php - 使用codeigniter将动态添加的表中的多个数据插入数据库

转载 作者:行者123 更新时间:2023-11-29 10:24:57 25 4
gpt4 key购买 nike

我有一个包含动态添加行的表。像这样的事情

enter image description here

用户可以在每个类别(基本、类型评级和一般)中动态添加行。当他们点击“保存记录”按钮时,数据将存储在数据库中。

我将共享一个类别(BASIC)的代码,仅用于代表其他类别。

这就是数据库中的表('t_basic')的样子

enter image description here

VIEW (body.php)(仅第一个类别(基本))

<table id="myTable0" name="myTable0" class="table table-bordered" style="width:100%; margin-bottom: 10px;">
<h3>Subjects</h3>
<tr style="font-size:18px; height:30px; color:#4d4d4d">
<th class="col-md-2" colspan="2" style="text-align:center;">Category</th>
<th class="col-md-3" style="text-align:center;">Work Scope</th>
<th><div style="text-align:center">I</div></th>
<th><div style="text-align:center">E</div></th>
<th><div style="text-align:center">PI</div></th>
<th><div style="text-align:center">PA</div></th>
<th class="col-md-3" style="text-align:center;">ATA Chapters</th>
</tr>
<tr style="height:25px; font-size:15px">
<td class="col-md-1" style="text-align: center; color:#4d4d4d;"><b>Basic</b></td>
<td class="col-md-1">
<select style="height:30px" name="basic_category[]" class="form-control">
<option>-</option>
<option>AP</option>
<option>EA</option>
</select>
</td>
<td class="col-md-3">
<div>
<input type="text" class="form-control" name="basic_workscope[]" placeholder="Type the workscope here">
</div>
</td>
<td>
<div style="text-align: center">
<input type="checkbox" name="basic_i[]">
</div>
</td>
<td>
<div style="text-align: center">
<input type="checkbox" name="basic_e[]">
</div>
</td>
<td>
<div style="text-align: center">
<input type="checkbox" name="basic_pi[]">
</div>
</td>
<td>
<div style="text-align: center">
<input type="checkbox" name="basic_pa[]">
</div>
</td>
<td class="col-md-3">
<div>
<input type="text" class="form-control" name="basic_ata_chapter[]" placeholder="Type the ATA chapters here">
</div>
</td>
<td style="width: 20px;">
<button onclick="deleteTable0()" type="button" class="btn btn-danger btn-sm" >
<span class="glyphicon glyphicon-trash"></span>
</button>
</td>
</tr>
</table>
<div class="row">
<button onclick="addTable0()" type="button" class="btn btn-success btn-sm" style="float: right; margin-right: 70px;">
<span class="glyphicon glyphicon-plus"></span> Add
</button>
</div>


<script>
function addTable0()
{

var table0 = document.getElementById("myTable0");
var row0 = table0.insertRow(2);
var cell1_0 = row0.insertCell(0);
var cell2_0 = row0.insertCell(1);
var cell3_0 = row0.insertCell(2);
var cell4_0 = row0.insertCell(3);
var cell5_0 = row0.insertCell(4);
var cell6_0 = row0.insertCell(5);
var cell7_0 = row0.insertCell(6);
var cell8_0 = row0.insertCell(7);
var cell9_0 = row0.insertCell(8);
row0.id = "newRow_0";
cell1_0.innerHTML = "";
cell2_0.id = "cell2_0";
cell3_0.id = "cell3_0";
cell4_0.id = "cell4_0";
cell5_0.id = "cell5_0";
cell6_0.id = "cell6_0";
cell7_0.id = "cell7_0";
cell8_0.id = "cell8_0";
cell9_0.id = "cell9_0";
$("#cell2_0").append('<select style="height:30px" name="basic_category[]" class="form-control"><option>-</option><option>AP</option><option>EA</option></select>');
$("#cell3_0").append('<input type="text" class="form-control" name="basic_workscope[]" placeholder="Type the workscope here">');
$("#cell4_0").append('<div style="text-align: center"><input type="checkbox" name="basic_i[]"></div>');
$("#cell5_0").append('<div style="text-align: center"><input type="checkbox" name="basic_e[]"></div>');
$("#cell6_0").append('<div style="text-align: center"><input type="checkbox" name="basic_pi[]"></div>');
$("#cell7_0").append('<div style="text-align: center"><input type="checkbox" name="basic_pa[]"></div>');
$("#cell8_0").append('<input type="text" class="form-control" name="basic_ata_chapter[]" placeholder="Type the ATA chapters here">');
$("#cell9_0").append('<button onclick="deleteTable0(this)" type="button" class="btn btn-danger btn-sm remove" id="btn_delete" ><span class="glyphicon glyphicon-trash"></span></button>');
}

function deleteTable0(r)
{
var i = r.parentNode.parentNode.rowIndex;
document.getElementById("0").deleteRow(i);
}
</script>

Controller (instructor_con.php)

$basic_data = array();

$basic_category = $_POST["basic_category"];
$basic_workscope = $_POST["basic_workscope"];
$basic_i = $_POST["basic_i"];
$basic_e = $_POST["basic_e"];
$basic_pi = $_POST["basic_pi"];
$basic_pa = $_POST["basic_pa"];
$basic_ata_chapter = $_POST["basic_ata_chapter"];

$basic_data[] = array($id_number, $basic_category, $basic_workscope, $basic_i, $basic_e, $basic_pi, $basic_pa, $basic_ata_chapter);

$this->mod->insert_t_basic($basic_data);

模型(mod.php)

public function insert_t_basic($basic_data) {
if(!empty($basic_data)) {

foreach($basic_data as $value) {
$this->db->insert('t_basic', $basic_data);
}

}
}

当我运行上面的代码时,我收到此错误消息

A PHP Error was encountered

Severity: Notice

Message: Array to string conversion

Filename: database/DB_driver.php

Line Number: 1477

我花了两天时间试图弄清楚将每行数据插入数据库的正确方法是什么。这个问题对我来说似乎很复杂,因为我还是 codeigniter 的新手。

如果您知道我的问题的任何解决方案,请告诉我。预先感谢您:")

最佳答案

$this->db->insert('t_basic', $basic_data);$basic_data 必须是关联数组 (以字符串作为元素索引键的数组)

修改 Controller 中的 $basic_data 数组:

   $basic_data = [
'basic_category' => $this->input->post('basic_category'),
'basic_workscope' => $this->input->post('basic_workscope'),
'basic_i' => $this->input->post('basic_i'),
'basic_e' => $this->input->post('basic_e'),
'basic_pi' => $this->input->post('basic_pi'),
'basic_pa' => $this->input->post('basic_pa'),
'basic_ata_chapter' => $this->input->post('basic_ata_chapter')
];

在CodeIgniter中,您可以使用$this->input->post()而不是$_POST[]来检索POST数据

关于php - 使用codeigniter将动态添加的表中的多个数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48484477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com