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

我正在使用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,并进行此工作,但我没有得到任何结果。




芜湖不芜
浏览 209回答 1
1回答

杨__羊羊

尝试使用此代码。这样可以解决您的问题。看法:<form action="action.php" method="POST"><?php for($i=1; $i<=$instalments; $i++){?>&nbsp; &nbsp; <div class="row form-group">&nbsp; &nbsp; &nbsp; &nbsp; <div><label>Instalment <?php echo $i;?></label></div>&nbsp; &nbsp; &nbsp; &nbsp; <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="text" id="instalment[]" name="instalment[]">&nbsp; &nbsp; </div></div><div class="row form-group">&nbsp; &nbsp; <div><label>Premium Date <?php echo $i;?></label></div>&nbsp; &nbsp; <div>&nbsp; &nbsp; &nbsp; &nbsp; <input type="text" id="date_<?php echo $i;?>" name="date[]" class="form-control">&nbsp; &nbsp; </div></div><?php } ?><input type="submit" name="submit" value="submit"></form>在您的控制器中:$post = $this->input->post();&nbsp; &nbsp;$i=0;&nbsp; &nbsp;foreach($post as $key=>$value){&nbsp; &nbsp; &nbsp; &nbsp;$arr = array(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'payment_amount' =>$post['instalment'][$i],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'payment_date' => $post['date'][$i],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'policy_name' => 1,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );&nbsp; &nbsp; &nbsp; &nbsp; $i++;&nbsp; &nbsp;}exit;
打开App,查看更多内容
随时随地看视频慕课网APP