为了账号安全,请及时绑定邮箱和手机立即绑定

在 while 循环 php 中插入表单中的数据

在 while 循环 php 中插入表单中的数据

PHP
天涯尽头无女友 2023-07-08 20:55:57
再会。我只是想问如何插入 while 循环生成的表单中的数据。这是我到目前为止所尝试的。我添加了一个循环,其中它们将具有不同的 ID 或名称,但是当我尝试单击按钮时,第一个表单是唯一有效的。预先非常感谢您。<?phpinclude "../config/dbconfig.php";$data['productCode'] = "1"; // sample data$stmt = $conn->prepare("SELECT * FROM tbl_category");//$stmt->bind_param("i", $data['productCode']);$stmt->execute();$result = $stmt->get_result();$i = 1;while ($stuff = $result->fetch_assoc()) {?>    <div class="col-sm-6" style="margin-top:20px;">        <div class="card">            <div class="card-header"><?php echo $stuff['categoryname']; ?>            </div>            <div class="card-body outermydiv">                <div class="myDIV">                    <form method="POST" name="itemform" action="">                        <div class="form-row">                            <div class="col-5">                                <input type="text" class="form-control" name="name[<?php echo $i; ?>]" id="itemname[<?php echo $i; ?>]" placeholder="Item name" required autocomplete="off">                            </div>                            <div class="col">                                <input type="number" class="form-control" name="cost[<?php echo $i; ?>]" id="itemcost[<?php echo $i; ?>]" placeholder="Cost" required>                            </div>
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

从重写你的表格开始......

  1. 你不需要$i任何东西,但我会留下声明,以防你需要它做其他事情。

  2. 不要提交数组类型数据,每个表单都会提交自己的一组字段。

  3. $stuff['categorycode']添加为value每个提交的 以避免需要隐藏字段可能更有意义。我现在就让你自己做吧。

形式:

foreach ($stmt->get_result() as $i => $stuff) { ?>

    <div class="col-sm-6" style="margin-top:20px;">

        <div class="card">

            <div class="card-header"><?php echo $stuff['categoryname']; ?></div>

            <div class="card-body outermydiv">

                <div class="myDIV">

                    <form method="POST">

                        <div class="form-row">

                            <div class="col-5">

                                <input type="text" class="form-control" name="name" placeholder="Item name" required autocomplete="off">

                            </div>

                            <div class="col">

                                <input type="number" class="form-control" name="cost" placeholder="Cost" required>

                            </div>

                            <div class="col">

                                <input type="number" class="form-control" name="price" placeholder="Price" required>

                            </div>

                            <div class="col">

                                <button type="submit" class="btn btn-success" name="btnsaveitem">Save</button>

                            </div>

                        </div>

                        <input type="hidden" class="form-control" name="code" value="<?php echo $stuff['categorycode']; ?>">

                    </form>

                </div>

                <br>

            </div>

        </div>

    </div>

    <?php

}        

接收脚本:(根据需要扩展其他字段)


if (isset($_POST['btnsaveitem'])) {

    $stmt = $conn->prepare("INSERT INTO tbl_items(`itemname`) VALUES (?)");

    $stmt->bind_param("s",$_POST['name']);

    $stmt->execute();

}

这都是未经测试的代码。


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信