当前位置: 首页 > 知识库问答 >
问题:

循环问题的代码点火器插入批次

亢建木
2023-03-14

我试图插入一个使用AJAX启动控制器的表单。表单是通过搜索另一个数据库生成的,该数据库创建了一个循环(foreach)表。用户将他/她的徽章扫描到输入字段中,然后在tab或blur上,jQuery启动对控制器的AJAX调用,控制器启动模型以插入数据库。它将数据写入数据库,但它循环表的所有行并将其插入数据库的每一行。因此,我将在db中设置10行,每列包含该列的所有10行数据(我假设是从我的内爆中)。

我的AJAX调用确实返回每行的所有值。

有人能看看我的模型,看看我在哪里有第二个循环或什么吗?

我尝试在我的模型中使用foreach循环,我尝试了各种post方法。

请温柔一点,这是我第一次从循环视图中插入数组。

非常感谢。

控制器:

    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>

共有1个答案

百里默
2023-03-14

是的,它不会工作,因为您正在一次又一次地装入相同的数据

像这样改变你的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);
    }
}
 类似资料:
  • 我正在尝试使用带有CodeIgniter的函数insert_batch插入来自表单as数组的一些值。 这是控制器中的代码: 这是模型插入\数量\产品中的代码 这是数据库错误 未知列应为quantity、price和productID 我做错了什么?

  • 严重性:注意消息:数组到字符串转换文件名:数据库/DB\u查询\u生成器。php行号:1539回溯:文件:D:\xampp\htdocs\visio\application\models\projectmodel。php行:56函数:插入批处理 错误号码:1064 您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解第1行“Array”附近使用的正确语法 插入到()值('8'

  • 问题内容: 我正在尝试将数据从此链接插入到我的SQL Server https://www.ian.com/affiliatecenter/include/V2/CityCoordinatesList.zip 我创建了表 我正在运行以下脚本来进行批量插入 但是批量插入失败,并出现以下错误 当我使用google时,我发现了几篇文章,指出问题可能出在RowTerminator上,但我尝试了诸如/ n

  • 我用的是Phil Sturgeon的 KEYS如何工作?有一个名为KEYS的表定义如下: 在名为KEYS的类中有如下方法: 由于这个软件包并没有很好的文档记录,而且我是API新手,所以上面的工作原理是什么?例如,我是否生成一个密钥并将其永久插入数据库。为什么会有删除方法? 从我的阅读资料来看,这听起来像是我为应用程序生成了一个初始的X-API-KEY,然后当客户端使用资源时,我会使用KEYS类将X

  • 本文向大家介绍手写代码:循环链表插入元素?相关面试题,主要包含被问及手写代码:循环链表插入元素?时的应答技巧和注意事项,需要的朋友参考一下 参考回答:   //插入元素 //current->next 0号节点的地址 //若第一次插入节点 //若头插法 current仍然指向头部 //(原因是:跳0步,没有跳走) 中间第一种情况

  • 我尝试实现循环链表的insert方法。我想我取得了一些成功。 问题:当我显示列表时。display方法将循环,因为链接的每个next变量都链接到一个非Null节点对象。所以head永远不会是空对象。根据我对单链表的回忆,head总是指向列表中的第一个节点或其中包含数据的第一个节点。 我对循环链表的概念理解:根据我的理解,循环链表有点像一个单链表,但有一点小的变化:尾部对象的下一个变量指向头部。 来