我正在使用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,
);
if(!$this->Policy_model->save_payment_details($arr)){
redirect('ships/index');
}
}
}
我该如何做才能使每条记录都不保存两次?如果我添加另一个字段,它将被保存3次。
我虽然要命名div,并进行此工作,但我没有得到任何结果。
先感谢您。
尝试使用此代码。这样可以解决您的问题。
视图:
<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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句