1

我正面临一个严重的困境,想知道这怎么可能。我有一个内置在 codeigniter 框架中的表单。在表单的末尾是一个输入标签,它接受一个数字并附加一个新表单,其中包含精确的输入标签行作为最后一个输入标签的值。我已经使用javascript完成了这个,代码是

$('#formName9').on('change', function() {
       var selected = $(this).val();
       $('#subForm').empty();
       $("#subForm").append('<table border="" style="border:none; background:#f2f2f1; margin-bottom:10px; border-collapse: collapse; margin-top: 25px; box-shadow: 9px 4px 8px rgba(50, 50, 50, 0.75);" cellspacing="0" cellpadding="0">            <tr>              <td style="text-align: center; width: 30px; border-width: 0px;"><img src="<?php echo  base_url(); ?>assets/img/icon_house.png" ></td>              <td style="text-align: center; border-width: 0px;"><img src="<?php echo  base_url(); ?>assets/img/table_divider.png" /></td>              <td style="text-align: center; width: 200px; border-width: 0px;"><strong>Unit Name</strong></td>              <td style="text-align: center; border-width: 0px;"><img src="<?php echo  base_url(); ?>assets/img/table_divider.png" /></td>              <td style="text-align: center; width: 250px; border-width: 0px;" ><strong>Owner Name</strong></td>              <td style="text-align: center; border-width: 0px;"><img src="<?php echo  base_url(); ?>assets/img/table_divider.png" /></td>              <td style="text-align: center;width: 150px; border-width: 0px;"><strong>Owner Salutation</strong></td> </tr> </table>');
       for (var i=1; i<=selected; i++) {
           $('#subForm').append('<div style="float: left; padding-left: 13px; padding-right: 12px; padding-top: 7px; margin-top: 0px;">'+i+'</div><input type="text" name="unitName" id="unitName'+i+'" style="width:189px;" required /><input type="text" name="ownerName'+i+'" id="ownerName'+i+'" style="width:241px;" /><input type="text" name="salutation'+i+'" id="salutation'+i+'" style="width:137px;" /><br />');
       }
    });

你可以看到我根据循环对所有附加的标签使用了不同的命名约定。

现在需要发布这些值以便 PHP[SERVER] 进行进一步的工作,但是我将如何发布这些动态值?我尝试了以下操作,但这只是挂起我的本地服务器并且没有进一步

$ownerName = array();
                    for ($i=0; $i<=$blockUnits ; $i+1) { 
                        $ownerName[$i] = "ownerName".$i;
                        $this->input->post('ownerName[$i]');
                    } 
4

2 回答 2

1

我认为如果你在数组中发布你的值应该会更容易......

例子..

 <input type="text" name="ownerName[]" id="ownerName'+i+'" style="width:241px;" />

并在控制器中循环...

foreach($this->input->post('ownerName') as test){
.....
}

对其他人类似

于 2013-03-21T06:25:43.513 回答
1

在添加新的输入文本框时,为这些字段命名,如下所示。

例如,如果用户想要添加 5 个字段,那么输出将变成类似

<input type="text" name="ownerName[]" />
<input type="text" name="ownerName[]" />
<input type="text" name="ownerName[]" />
<input type="text" name="ownerName[]" />
<input type="text" name="ownerName[]" />

然后在 PHP 中,您可以获取这些字段的值,例如

$ownerNames = $_POST['ownerName'];

foreach( $ownerNames as $ownerName ) {
    echo "Owner Name is : " . $ownerName;
}

当您在 CodeIgniter 中尝试时,代码将如下所示(获取 post 变量)

$ownerNames = $this->input->post('ownerName');

foreach( $ownerNames as $ownerName ) {
    echo "Owner Name is : " . $ownerName;
}
于 2013-03-21T06:30:46.040 回答