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

动态HTML表单并保存到数据库的多个记录中

动态HTML表单并保存到数据库的多个记录中

PHP
芜湖不芜 2021-04-06 17:18:30
我正在使用Codeigniter编写一个小型应用程序来跟踪付款和付款日期。我有一个表格,我们在其中输入有关客户的详细信息,在这些字段中,我们输入将用于为客户支付全部保险费的分期付款。下一页将使用此数字,并生成相同数量的字段。例如instalment_1,date_1;第2批,日期_2。<?php for($i=1; $i<=$instalments; $i++):?>    <div class="row form-group">        <div><label>Instalment <?php echo $i;?></label></div>        <div>            <input type="text" id="instalment_<?php echo $i;?>" name="instalment_<?php echo $i;?>">    </div></div><div class="row form-group">    <div><label>Premium Date <?php echo $i;?></label></div>    <div>        <input type="text" id="date_<?php echo $i;?>" name="date_<?php echo $i;?>" class="form-control">    </div></div>现在的想法是遍历此表单,并将每期付款和日期集保存到数据库的1条记录中。如果我只有一种类型的字段(例如,分期付款),我就能做到。但是当我添加日期时,它正在保存,但是每条记录都会创建两次。$post = $this->input->post();   foreach($post as $key=>$value){            //check for the word instalment            if(strpos($key, "instalment") == 0){                //get the instalment number from the name of the field                $inst_number = substr($key, -1);                //Use $category_id and $value in this loop to build update statement                echo "<script type='text/javascript'>alert('$inst_number');</script>";                //$arr = "inst_".$inst_number;                //reform the name of the field to get the values from it                $instalment_var = "instalment_".$inst_number;                $date_var = "date_".$inst_number;                echo "<script type='text/javascript'>alert('$instalment_var');</script>";                $amount = $this->input->post($instalment_var);                $date = $this->input->post($date_var);                echo "<script type='text/javascript'>alert('$amount');</script>";                $arr = array(                    'payment_amount' => $amount,                    'payment_date' => $date,                    'policy_name' => $policy_id,                );我该如何做才能使每条记录都没有保存两次?如果我添加另一个字段,它将被保存3次。我虽然要命名div,并进行此工作,但我没有得到任何结果。
查看完整描述

1 回答

?
杨__羊羊

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

尝试使用此代码。这样可以解决您的问题。


看法:


<form action="action.php" method="POST">

<?php for($i=1; $i<=$instalments; $i++){?>

    <div class="row form-group">

        <div><label>Instalment <?php echo $i;?></label></div>

        <div>

            <input type="text" id="instalment[]" name="instalment[]">

    </div>

</div>


<div class="row form-group">

    <div><label>Premium Date <?php echo $i;?></label></div>

    <div>

        <input type="text" id="date_<?php echo $i;?>" name="date[]" class="form-control">

    </div>

</div>

<?php } ?>

<input type="submit" name="submit" value="submit">

</form>

在您的控制器中:


$post = $this->input->post();

   $i=0;

   foreach($post as $key=>$value){

       $arr = array(

                    'payment_amount' =>$post['instalment'][$i],

                    'payment_date' => $post['date'][$i],

                    'policy_name' => 1,

                );

        $i++;

   }exit;


查看完整回答
反对 回复 2021-04-23
  • 1 回答
  • 0 关注
  • 208 浏览

添加回答

举报

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