- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试插入一个使用 AJAX 来启动 Controller 的表单。该表单是通过搜索另一个数据库生成的,该数据库创建了一个循环(foreach)表。用户将他/她的徽章扫描到输入字段中,然后在选项卡或模糊上,jQuery 启动对 Controller 的 AJAX 调用,该 Controller 启动模型以插入到数据库中。它将数据写入数据库,但它循环表的所有行并将其插入数据库的每一行。所以我会说数据库中有 10 行,每列包含该列的所有十行数据(我假设来 self 的内爆)。
我的 AJAX 调用确实返回每行的所有值。
有人可以看看我的模型并看看我在哪里有第二个循环或其他东西吗?
我尝试在模型中使用 foreach 循环,我尝试了各种 post 方法。
请温柔一点,这是我第一次从循环 View 中对数组进行 insert_batch。
谢谢!!
Controller :
function pp_traveler_job() {
if ($this -> ppullers_model -> AssignJob() == TRUE)
{
$this -> session -> set_flashdata('flashSuccess', '<br>Your form was successfully processed.');
redirect('/parts_pullers_traveler');
echo "Your data was inserted into the database!";
} else {
$this -> session -> set_flashdata('FlashFail', '<br>Your data did not entered.');
echo 'Your data was not inserted in the database!';
}
}
型号:
function AssignJob() {
$emp_id = $this -> input -> post('emp_id');
$job_number = $this -> input -> post('job_number');
$component_part_no = $this -> input -> post('component_part_no');
$component_desc = $this -> input -> post('component_desc');
$quantity = $this -> input -> post('quantity');
$uom = $this -> input -> post('uom');
$data = array();
$now = date("Y-m-d H:i:s");
for ($i = 0; $i < count($this -> input -> post('component_part_no')); $i++) {
if ($_POST['component_part_no'][$i] != '') {
$data[] = array(
'emp_id' => implode(',', $emp_id),
'job_number' => implode(',', $job_number),
'component_part_no' => implode(',', $component_part_no),
'component_desc' => implode(',', $component_desc),
'quantity' => implode(',', $quantity),
'uom' => implode(',', $uom),
'time_assigned' => $now);
}
}
$dataCount = count($data);
if ($dataCount) {
$this -> db -> insert_batch('trvlr_pp_data', $data);
}
if ($this -> db -> affected_rows() !== '') {
return TRUE;
return $dataCount;
}
}
查看:
<?php
$attributes = array('class' => 'pp_job_form', 'id' => 'pp_job_form');
echo form_open('/ppullers_controller/pp_traveler_job', $attributes);
?>
<p>
<label for="emp_id">Scan Badge: <span class="required">*</span></label>
<?php echo form_error('emp_id'); ?>
<br /><input id="emp_id" type="text" name="emp_id[]" class="empIdOnly" maxlength="10" value="<?php echo set_value('emp_id'); ?>" placeholder="Emp ID" autofocus />
<?php echo form_error('job_number'); ?><input id="job_number" type="hidden" name="job_number[]" maxlength="15" value="<?php foreach ($query as $jobno); echo substr($jobno -> fjobno, 0, -5); ?>" />
<div id="pp-table">
<table id="tfhover" class="tftable">
<tr>
<th>Comp Pt No.</th>
<th>BOM Desc</th>
<th>QTY</th>
<th>UoM</th>
<th>Component Scan</th>
<th>QTY Pulled</th>
</tr>
<?php foreach($query as $item):
?>
<tr>
<td>
<?php echo form_error('component_part_no'); ?>
<span>
<input id="component_part_no" type="text" name="component_part_no[]" size="10" maxlength="10" value="
<?= trim($item -> fbompart) ?>" readonly style="background-color: #CEE6F6; color: #202D64;"
</span>
</td>
<td>
<?php echo form_error('component_desc'); ?>
<span>
<input id="component_desc" type="text" name="component_desc[]" size="50" maxlength="225" value="
<?= $item -> fbomdesc ?>" readonly style="background-color: #CEE6F6; color: #202D64;"
</span>
</td>
<td>
<?php echo form_error('quantity'); ?>
<span>
<input id="quantity" type="text" name="quantity[]" size="4" maxlength="4" value="
<?= rtrim($item -> factqty, ".0") ?>" readonly style="background-color: #CEE6F6; color: #202D64;"
</span>
</td>
<td>
<?php echo form_error('uom'); ?>
<span>
<input id="uom" type="text" name="uom[]" size="2" maxlength="4" value="
<?= $item -> fbommeas ?>" readonly style="background-color: #CEE6F6; color: #202D64;"
</span>
</td>
<td>
<?php echo form_error('comp_scan'); ?>
<span>
<input id="comp_scan" type="text" name="comp_scan[]" size="20" maxlength="20" value="
<?php echo set_value('comp_scan'); ?>"
</span>
</td>
<td>
<?php echo form_error('qty_pulled'); ?>
<span>
<input id="qty_pulled" type="text" name="qty_pulled[]" size="10" maxlength="15" value="
<?php echo set_value('qty_pulled'); ?>"
</span>
</td>
</tr>
<?php endforeach; ?>
</table>
<div id="pp-submit">
<!-- form submit and reset buttons -->
<span style="width: 70px; margin-top: 25px; float: left;">
<!-- overrides css on the form -->
<?php
$data = array('name' => 'submitbtn', 'class' => 'submit', 'type' => 'submit', 'value' => 'Submit', 'id' => 'submit');
echo form_submit($data);
?>
</span>
<span style="width: 70px; margin-top: 25px; margin-bottom: 25px; float: left;">
<!-- overrides css on the form -->
<?php
$data = array('name' => 'reset2', 'class' => 'reset', 'type' => 'reset', 'value' => 'Reset', 'id' => 'reset2');
echo form_reset($data);
?>
</span>
<?php echo form_close(); ?>
</div>
</div>
最佳答案
是的,它不会工作,因为你一次又一次地导入相同的数据
像这样改变你的for循环
if(is_array($emp_id)){
foreach ($emp_id as $key => $_emp_id) {
$data[] = array(
'emp_id' => $_emp_id,
'job_number' => $job_number[$key],
'component_part_no' => $component_part_no[$key],
'component_desc' => $component_desc[$key],
'quantity' => $quantity[$key],
'uom' => $uom[$key],
'time_assigned' => $now);
}
}
关于php - Codeigniter insert_batch for 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22202844/
这个问题在这里已经有了答案: How to create Codeigniter batch insert array (4 个答案) 关闭去年。 好的,我正在尝试弄清楚如何使用 insert_ba
我正在尝试插入一个使用 AJAX 来启动 Controller 的表单。该表单是通过搜索另一个数据库生成的,该数据库创建了一个循环(foreach)表。用户将他/她的徽章扫描到输入字段中,然后在选项卡
我使用以下语句通过 codeigniter 在 mysql 中插入数据。 $this->db->insert_batch($table, $query); $query 是动态生成的,每个数组元素上
我正在编写一个通过短信网关发送短信的应用程序,并且(显然)我在数据库中保留了该消息的副本。到目前为止,出于原型(prototype)设计的目的,我使用 Codeigniter 的 Active Rec
我正在使用 codeigniter insert_batch() 函数,而不是使用简单的插入来循环数据。我的行数约为 390,其中只有 100 行插入,因为 codeigniter(或 mysql)不
我使用 Codeigniter v2.1.4 在 sqlite3 数据库中插入一些值。 问题是当我尝试插入一个批处理时它给我一个错误: >[17-Jan-2014 22:44:17 UTC] PHP
是否可以将 insert_batch 与带有 codeigniter 的选择一起使用?例如,我需要插入一批: INSERT INTO a (a_id, b_id, c_id) SELECT {
我正在使用 codeignitor 的插入批处理功能向表中插入多行。 $this->db->insert_batch('table', $sizes); 我的 $sizes 数组看起来像这样
我混合使用 ajax 和 codeigniter 来进行多次插入。 代码是这样的: JS function save(path){ $.ajax({ url: "",
我想一次将五十个人的记录插入数据库(可以增加)。当用户单击保存按钮时,数据应该保存在数据库中。最好的方法是什么? 这是我的 Controller function month_end_data()
我正在使用 insert_batch() 将 10000 多行批量插入到数据库的表中。我正在做一些测试,我注意到有时所有 10.000 多行都被正确插入,但在某些情况下,我在表的总计数中遗漏了 100
我尝试使用 codeigniter 中的 insertbatch 将数据插入到表中。我收到查询,当我将该查询运行到 phpmyadmin sql 查询时,它工作得很好。当我调用函数时它不起作用。 数组
我正在尝试将数组作为一行插入到数据库上的“费用”表中: public function insert_expense($expenses){ $this->db->insert_batch('
好吧,所以我在一个数组中有一个巨大的条目列表(比如 500 多个),我需要将其插入到 MySQL 数据库中。 我有一个填充数组的循环,如下所示: $sms_to_insert[] = array(
我是一名优秀的程序员,十分优秀!